import { EngineContext, FileDownloadProgress, ModelConfig, TextCompletionTaskResult, EmbeddingTaskResult, TransformersJsModel, TransformersJsSpeechModel, TextCompletionTaskArgs, EngineTextCompletionTaskContext, EmbeddingTaskArgs, EngineTaskContext, ImageToTextTaskArgs, SpeechToTextTaskArgs, TextToSpeechTaskArgs, ObjectDetectionTaskArgs, ChatCompletionTaskArgs, ChatCompletionTaskResult, TextClassificationTaskArgs, ObjectDetectionTaskResult, TextClassificationTaskResult, TextToSpeechTaskResult } from '../../types/index.js';
import { Processor, PreTrainedModel, PreTrainedTokenizer, SpeechT5ForTextToSpeech, WhisperForConditionalGeneration } from '@huggingface/transformers';
export interface TransformersJsModelComponents<TModel = PreTrainedModel> {
    model?: TModel;
    processor?: Processor;
    tokenizer?: PreTrainedTokenizer;
}
export interface TextToSpeechModel {
    generate_speech: SpeechT5ForTextToSpeech['generate_speech'];
}
export interface SpeechToTextModel {
    generate: WhisperForConditionalGeneration['generate'];
}
export interface SpeechModelComponents extends TransformersJsModelComponents<TextToSpeechModel | SpeechToTextModel> {
    vocoder?: PreTrainedModel;
    speakerEmbeddings?: Record<string, Float32Array>;
}
interface TransformersJsInstance {
    primary?: TransformersJsModelComponents;
    text?: TransformersJsModelComponents;
    vision?: TransformersJsModelComponents;
    speech?: SpeechModelComponents;
}
export interface TransformersJsModelConfig extends ModelConfig, TransformersJsModel, TransformersJsSpeechModel {
    location: string;
    url: string;
    textModel?: TransformersJsModel;
    visionModel?: TransformersJsModel;
    speechModel?: TransformersJsSpeechModel;
    device?: {
        gpu?: boolean | 'auto' | (string & {});
    };
}
export declare const autoGpu = true;
export declare function prepareModel({ config, log }: EngineContext<TransformersJsModelConfig>, onProgress?: (progress: FileDownloadProgress) => void, signal?: AbortSignal): Promise<{
    files: string[] | Buffer<ArrayBufferLike>[];
} | undefined>;
export declare function createInstance({ config, log }: EngineContext<TransformersJsModelConfig>, signal?: AbortSignal): Promise<TransformersJsInstance>;
export declare function disposeInstance(instance: TransformersJsInstance): Promise<void>;
export declare function processChatCompletionTask(task: ChatCompletionTaskArgs, ctx: EngineTextCompletionTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<ChatCompletionTaskResult>;
export declare function processTextCompletionTask(task: TextCompletionTaskArgs, ctx: EngineTextCompletionTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<TextCompletionTaskResult>;
export declare function processEmbeddingTask(task: EmbeddingTaskArgs, ctx: EngineTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<EmbeddingTaskResult>;
export declare function processImageToTextTask(task: ImageToTextTaskArgs, ctx: EngineTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<{
    text: string;
} | undefined>;
export declare function processSpeechToTextTask(task: SpeechToTextTaskArgs, ctx: EngineTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<{
    text: string;
}>;
export declare function processTextToSpeechTask(task: TextToSpeechTaskArgs, ctx: EngineTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<TextToSpeechTaskResult>;
export declare function processObjectDetectionTask(task: ObjectDetectionTaskArgs, ctx: EngineTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<ObjectDetectionTaskResult>;
export declare function processTextClassificationTask(task: TextClassificationTaskArgs, ctx: EngineTaskContext<TransformersJsInstance, TransformersJsModelConfig>, signal?: AbortSignal): Promise<TextClassificationTaskResult>;
export {};
