export type DictationModelInstallStatus = 'idle' | 'installing' | 'verifying' | 'installed' | 'error';
export interface DictationModelState {
    id: string;
    label: string;
    language: 'en' | 'multi';
    sizeBytes: number;
    url: string;
    sha256: string;
    recommended?: boolean;
    installed: boolean;
    installing: boolean;
    installedSizeBytes: number;
    installStatus: DictationModelInstallStatus;
    progressBytes: number;
    totalBytes: number;
    error?: string;
    errorCode?: string;
}
export interface DictationStatusResponse {
    available: boolean;
    engine: string;
    engineInstalled: boolean;
    defaultModel: string;
    format?: {
        encoding?: string;
        sampleRate?: number;
        channels?: number;
    };
    models: DictationModelState[];
}
export interface DictationModelsResponse {
    models: DictationModelState[];
}
export interface InstallDictationModelInput {
    model: string;
    force?: boolean;
}
export interface InstallDictationModelResponse {
    model: DictationModelState;
}
export interface RemoveDictationModelResponse {
    removed: boolean;
    model: DictationModelState;
}
export interface DictationModelInstallEvent {
    type: 'model';
    model: DictationModelState;
}
export interface CreateDictationSessionInput {
    model?: string;
    language?: string;
}
export interface CreateDictationSessionResponse {
    id: string;
    wsUrl: string;
    model: string;
    modelInstalled: boolean;
    format: {
        encoding: string;
        sampleRate: number;
        channels: number;
    };
}
declare function buildInstallEventsUrl(model: string): string;
export declare const dictationMixin: {
    getDictationStatus(): Promise<DictationStatusResponse>;
    listDictationModels(): Promise<DictationModelsResponse>;
    installDictationModel({ model, force, }: InstallDictationModelInput): Promise<InstallDictationModelResponse>;
    removeDictationModel(model: string): Promise<RemoveDictationModelResponse>;
    createDictationSession(input?: CreateDictationSessionInput): Promise<CreateDictationSessionResponse>;
    getDictationModelInstallEventsUrl: typeof buildInstallEventsUrl;
};
export {};
//# sourceMappingURL=dictation.d.ts.map