import { Theme, Clip, type VoiceOption } from '../models';
export interface TimelineClipConfigControllerConfig {
    container: HTMLElement;
    theme: Theme;
    getPrimarySelectedClip: () => Clip | null;
    voiceCatalog: VoiceOption[];
    updateClip: (clipId: string, updates: Partial<Clip>) => void;
    onGenerateVoice?: (clip: Clip, voice: VoiceOption, followTextUpdates: boolean) => Promise<void>;
}
export declare class TimelineClipConfigController {
    private panel;
    private config;
    private isInternalUpdate;
    init(config: TimelineClipConfigControllerConfig): void;
    update(): void;
    updateFromExternal(): void;
    destroy(): void;
    setPreferredTab(tab: 'voice' | null): void;
    setVoiceGenerationBusy(isBusy: boolean): void;
    private convertTheme;
}
