import * as genkit from 'genkit';
import { z, Genkit } from 'genkit';
import { ModelAction } from 'genkit/model';
import OpenAI from 'openai';

declare const Whisper1ConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    language: z.ZodOptional<z.ZodString>;
    timestamp_granularities: z.ZodOptional<z.ZodArray<z.ZodEnum<["word", "segment"]>, "many">>;
    response_format: z.ZodOptional<z.ZodEnum<["json", "text", "srt", "verbose_json", "vtt"]>>;
}>, "strip", z.ZodTypeAny, {
    response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
    version?: string | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
    language?: string | undefined;
    timestamp_granularities?: ("word" | "segment")[] | undefined;
}, {
    response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
    version?: string | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
    language?: string | undefined;
    timestamp_granularities?: ("word" | "segment")[] | undefined;
}>;
declare const whisper1: genkit.ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    language: z.ZodOptional<z.ZodString>;
    timestamp_granularities: z.ZodOptional<z.ZodArray<z.ZodEnum<["word", "segment"]>, "many">>;
    response_format: z.ZodOptional<z.ZodEnum<["json", "text", "srt", "verbose_json", "vtt"]>>;
}>, "strip", z.ZodTypeAny, {
    response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
    version?: string | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
    language?: string | undefined;
    timestamp_granularities?: ("word" | "segment")[] | undefined;
}, {
    response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
    version?: string | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
    language?: string | undefined;
    timestamp_granularities?: ("word" | "segment")[] | undefined;
}>>;
declare const gpt4oTranscribe: genkit.ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    language: z.ZodOptional<z.ZodString>;
    timestamp_granularities: z.ZodOptional<z.ZodArray<z.ZodEnum<["word", "segment"]>, "many">>;
    response_format: z.ZodOptional<z.ZodEnum<["json", "text", "srt", "verbose_json", "vtt"]>>;
}>, "strip", z.ZodTypeAny, {
    response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
    version?: string | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
    language?: string | undefined;
    timestamp_granularities?: ("word" | "segment")[] | undefined;
}, {
    response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
    version?: string | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
    language?: string | undefined;
    timestamp_granularities?: ("word" | "segment")[] | undefined;
}>>;
declare const SUPPORTED_STT_MODELS: {
    'gpt-4o-transcribe': genkit.ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        language: z.ZodOptional<z.ZodString>;
        timestamp_granularities: z.ZodOptional<z.ZodArray<z.ZodEnum<["word", "segment"]>, "many">>;
        response_format: z.ZodOptional<z.ZodEnum<["json", "text", "srt", "verbose_json", "vtt"]>>;
    }>, "strip", z.ZodTypeAny, {
        response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
        version?: string | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
        language?: string | undefined;
        timestamp_granularities?: ("word" | "segment")[] | undefined;
    }, {
        response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
        version?: string | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
        language?: string | undefined;
        timestamp_granularities?: ("word" | "segment")[] | undefined;
    }>>;
    'whisper-1': genkit.ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        language: z.ZodOptional<z.ZodString>;
        timestamp_granularities: z.ZodOptional<z.ZodArray<z.ZodEnum<["word", "segment"]>, "many">>;
        response_format: z.ZodOptional<z.ZodEnum<["json", "text", "srt", "verbose_json", "vtt"]>>;
    }>, "strip", z.ZodTypeAny, {
        response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
        version?: string | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
        language?: string | undefined;
        timestamp_granularities?: ("word" | "segment")[] | undefined;
    }, {
        response_format?: "text" | "json" | "srt" | "verbose_json" | "vtt" | undefined;
        version?: string | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
        language?: string | undefined;
        timestamp_granularities?: ("word" | "segment")[] | undefined;
    }>>;
};
declare function sttModel(ai: Genkit, name: string, client: OpenAI): ModelAction<typeof Whisper1ConfigSchema>;

export { SUPPORTED_STT_MODELS, Whisper1ConfigSchema, gpt4oTranscribe, sttModel, whisper1 };
