import { AIModelLoadingStatus, AITask, AITaskInput } from "./Tasks";
export declare class ModelApi {
    baseUrl: string;
    apiKey: string;
    model: string;
    apiType: String;
}
export declare class LocalModel {
    fileName: string;
    tokenizerSource: string;
    modelParameters: string;
}
export type ModelType = "LLM" | "EMBEDDING" | "TRANSCRIPTION";
export declare class Model {
    id: string;
    name: string;
    api?: ModelApi;
    local?: LocalModel;
    modelType: ModelType;
}
export declare class ModelApiInput {
    baseUrl: string;
    apiKey: string;
    model: string;
    apiType: string;
}
export declare class LocalModelInput {
    fileName: string;
    tokenizerSource: string;
    modelParameters: string;
}
export declare class ModelInput {
    name: string;
    api?: ModelApiInput;
    local?: LocalModelInput;
    modelType: ModelType;
}
export default class AIResolver {
    aiGetModels(): Model[];
    aiAddModel(model: ModelInput): string;
    aiUpdateModel(modelId: string, model: ModelInput): boolean;
    aiRemoveModel(modelId: string): boolean;
    aiSetDefaultModel(modelType: ModelType, modelId: string): boolean;
    aiGetDefaultModel(modelType: ModelType): Model;
    aiTasks(): AITask[];
    aiAddTask(task: AITaskInput): AITask;
    aiRemoveTask(taskId: string): AITask;
    aiUpdateTask(taskId: string, task: AITaskInput): AITask;
    aiModelLoadingStatus(model: string): AIModelLoadingStatus;
    aiPrompt(taskId: string, input: string): string;
    aiEmbed(modelId: string, text: string): string;
    aiOpenTranscriptionStream(modelId: string): string;
    aiCloseTranscriptionStream(streamId: string): boolean;
    aiFeedTranscriptionStream(streamId: string, audio: number[], pubSub: any): boolean;
    aiTranscriptionText(streamId: string): string;
}
