// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
// @generated from file api/v1/ai_service.proto (package memos.api.v1, syntax proto3)
/* eslint-disable */

import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_google_api_annotations } from "../../google/api/annotations_pb";
import { file_google_api_client } from "../../google/api/client_pb";
import { file_google_api_field_behavior } from "../../google/api/field_behavior_pb";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file api/v1/ai_service.proto.
 */
export const file_api_v1_ai_service: GenFile = /*@__PURE__*/
  fileDesc("ChdhcGkvdjEvYWlfc2VydmljZS5wcm90bxIMbWVtb3MuYXBpLnYxIpsBChFUcmFuc2NyaWJlUmVxdWVzdBIYCgtwcm92aWRlcl9pZBgBIAEoCUID4EECEjYKBmNvbmZpZxgCIAEoCzIhLm1lbW9zLmFwaS52MS5UcmFuc2NyaXB0aW9uQ29uZmlnQgPgQQISNAoFYXVkaW8YAyABKAsyIC5tZW1vcy5hcGkudjEuVHJhbnNjcmlwdGlvbkF1ZGlvQgPgQQIiQQoTVHJhbnNjcmlwdGlvbkNvbmZpZxITCgZwcm9tcHQYASABKAlCA+BBARIVCghsYW5ndWFnZRgCIAEoCUID4EEBIncKElRyYW5zY3JpcHRpb25BdWRpbxIWCgdjb250ZW50GAEgASgMQgPgQQRIABINCgN1cmkYAiABKAlIABIVCghmaWxlbmFtZRgDIAEoCUID4EEBEhkKDGNvbnRlbnRfdHlwZRgEIAEoCUID4EEBQggKBnNvdXJjZSIiChJUcmFuc2NyaWJlUmVzcG9uc2USDAoEdGV4dBgBIAEoCTKaAQoJQUlTZXJ2aWNlEowBCgpUcmFuc2NyaWJlEh8ubWVtb3MuYXBpLnYxLlRyYW5zY3JpYmVSZXF1ZXN0GiAubWVtb3MuYXBpLnYxLlRyYW5zY3JpYmVSZXNwb25zZSI72kEYcHJvdmlkZXJfaWQsY29uZmlnLGF1ZGlvgtPkkwIaOgEqIhUvYXBpL3YxL2FpOnRyYW5zY3JpYmVCpgEKEGNvbS5tZW1vcy5hcGkudjFCDkFpU2VydmljZVByb3RvUAFaMGdpdGh1Yi5jb20vdXNlbWVtb3MvbWVtb3MvcHJvdG8vZ2VuL2FwaS92MTthcGl2MaICA01BWKoCDE1lbW9zLkFwaS5WMcoCDE1lbW9zXEFwaVxWMeICGE1lbW9zXEFwaVxWMVxHUEJNZXRhZGF0YeoCDk1lbW9zOjpBcGk6OlYxYgZwcm90bzM", [file_google_api_annotations, file_google_api_client, file_google_api_field_behavior]);

/**
 * @generated from message memos.api.v1.TranscribeRequest
 */
export type TranscribeRequest = Message<"memos.api.v1.TranscribeRequest"> & {
  /**
   * Required. The instance AI provider ID to use.
   *
   * @generated from field: string provider_id = 1;
   */
  providerId: string;

  /**
   * Required. Transcription options.
   *
   * @generated from field: memos.api.v1.TranscriptionConfig config = 2;
   */
  config?: TranscriptionConfig | undefined;

  /**
   * Required. Audio input.
   *
   * @generated from field: memos.api.v1.TranscriptionAudio audio = 3;
   */
  audio?: TranscriptionAudio | undefined;
};

/**
 * Describes the message memos.api.v1.TranscribeRequest.
 * Use `create(TranscribeRequestSchema)` to create a new message.
 */
export const TranscribeRequestSchema: GenMessage<TranscribeRequest> = /*@__PURE__*/
  messageDesc(file_api_v1_ai_service, 0);

/**
 * @generated from message memos.api.v1.TranscriptionConfig
 */
export type TranscriptionConfig = Message<"memos.api.v1.TranscriptionConfig"> & {
  /**
   * Optional. A prompt to improve transcription quality.
   *
   * @generated from field: string prompt = 1;
   */
  prompt: string;

  /**
   * Optional. The language of the input audio.
   *
   * @generated from field: string language = 2;
   */
  language: string;
};

/**
 * Describes the message memos.api.v1.TranscriptionConfig.
 * Use `create(TranscriptionConfigSchema)` to create a new message.
 */
export const TranscriptionConfigSchema: GenMessage<TranscriptionConfig> = /*@__PURE__*/
  messageDesc(file_api_v1_ai_service, 1);

/**
 * @generated from message memos.api.v1.TranscriptionAudio
 */
export type TranscriptionAudio = Message<"memos.api.v1.TranscriptionAudio"> & {
  /**
   * @generated from oneof memos.api.v1.TranscriptionAudio.source
   */
  source: {
    /**
     * Inline audio bytes.
     *
     * @generated from field: bytes content = 1;
     */
    value: Uint8Array;
    case: "content";
  } | {
    /**
     * URI for audio content. Reserved for future use.
     *
     * @generated from field: string uri = 2;
     */
    value: string;
    case: "uri";
  } | { case: undefined; value?: undefined };

  /**
   * Optional. The uploaded filename.
   *
   * @generated from field: string filename = 3;
   */
  filename: string;

  /**
   * Optional. The MIME type of the input audio.
   *
   * @generated from field: string content_type = 4;
   */
  contentType: string;
};

/**
 * Describes the message memos.api.v1.TranscriptionAudio.
 * Use `create(TranscriptionAudioSchema)` to create a new message.
 */
export const TranscriptionAudioSchema: GenMessage<TranscriptionAudio> = /*@__PURE__*/
  messageDesc(file_api_v1_ai_service, 2);

/**
 * @generated from message memos.api.v1.TranscribeResponse
 */
export type TranscribeResponse = Message<"memos.api.v1.TranscribeResponse"> & {
  /**
   * The transcribed text.
   *
   * @generated from field: string text = 1;
   */
  text: string;
};

/**
 * Describes the message memos.api.v1.TranscribeResponse.
 * Use `create(TranscribeResponseSchema)` to create a new message.
 */
export const TranscribeResponseSchema: GenMessage<TranscribeResponse> = /*@__PURE__*/
  messageDesc(file_api_v1_ai_service, 3);

/**
 * @generated from service memos.api.v1.AIService
 */
export const AIService: GenService<{
  /**
   * Transcribe transcribes an audio file using an instance AI provider.
   *
   * @generated from rpc memos.api.v1.AIService.Transcribe
   */
  transcribe: {
    methodKind: "unary";
    input: typeof TranscribeRequestSchema;
    output: typeof TranscribeResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_api_v1_ai_service, 0);

