import type { SnapshotStore } from '@deepseek-ai/dsh-client-store'; import type { EarsRemote } from '../remote.js'; import type { WhisperModelState } from '../remote-contract.js'; export interface WhisperModelView { status: 'loading' | 'ready'; state: WhisperModelState; } export declare const EMPTY_WHISPER_STATE: WhisperModelState; export interface WhisperModelControllerOptions { readonly currentModel: () => string; readonly hasPendingAcceleration: () => boolean; } /** Owns Whisper polling/mutations and guards model/acceleration races. */ export declare class WhisperModelController { private readonly remote; private readonly options; private readonly store; private view; private pollTimer; private disposed; private request; private refreshInFlight; private refreshQueued; private mutationInFlight; private accelerationRevision; constructor(remote: EarsRemote, options: WhisperModelControllerOptions); getStore(): SnapshotStore; notifyAccelerationChanged(): void; refresh(): Promise; download(): Promise; cancel(): Promise; delete(): Promise; dispose(): void; private showPendingAcceleration; private beginMutation; private isCurrentMutation; private finishMutation; private startPolling; private stopPolling; }