import type { ClipConfig, PlayState, PreviewAspectRatio, Track, TrackInsertionPlacement, TrackType } from '../models/types';
export interface DemoPreviewClipSnapshot extends ClipConfig {
    id: string;
    previewAutoOrder?: number;
}
export interface DemoPreviewTrackSnapshot {
    id: string;
    type: TrackType;
    name: string;
    order: number;
    isMuted: boolean;
    clips: DemoPreviewClipSnapshot[];
}
export interface DemoPreviewRebuildSnapshot {
    currentTime: number;
    speed: number;
    zoom: number;
    playState: PlayState;
    previewAspectRatio: PreviewAspectRatio;
    selectedClipIds: string[];
    selectedClipId?: string | null;
    isPreviewAttached: boolean;
    tracks: DemoPreviewTrackSnapshot[];
}
interface DemoPreviewStateReader {
    getCurrentTime(): number;
    getPreviewAspectRatio(): PreviewAspectRatio;
    getSpeed(): number;
    getZoom(): number;
    getPlayState(): PlayState;
    getSelectedClipIds(): string[];
    getTracks(): Track[];
}
interface DemoPreviewStateWriter extends DemoPreviewStateReader {
    addClip(clipConfig: DemoPreviewClipSnapshot): Promise<string>;
    clearSelection(): void;
    createTrack(type: TrackType, name?: string, insertionPlacement?: TrackInsertionPlacement, referenceTrackId?: string): string;
    moveClipToTrack(clipId: string, targetTrackId: string): boolean;
    muteTrack(trackId: string, isMuted: boolean): boolean;
    pause(): void;
    play(): void;
    renameTrack(trackId: string, newName: string): boolean;
    resetPreviewAspectRatioToAuto(): void;
    setSelection(clipIds: string[]): void;
    setCurrentTime(time: number): void;
    setPreviewAspectRatio(aspectRatio: {
        width: number;
        height: number;
    }): void;
    setSpeed(speed: number): void;
    setZoomByInteraction(zoom: number): void;
}
export declare function captureDemoPreviewRebuildSnapshot(manager: DemoPreviewStateReader, isPreviewAttached: boolean): DemoPreviewRebuildSnapshot;
export declare function restoreDemoPreviewRebuildSnapshot(manager: DemoPreviewStateWriter, snapshot: DemoPreviewRebuildSnapshot): Promise<void>;
export {};
