import type { PlayState, TimeMs } from '../models/types';
export interface TimelineStoreInitialState {
    currentTime: TimeMs;
    playState: PlayState;
    speed: number;
    zoom: number;
    duration: TimeMs;
    scrollLeft?: number;
    scrollTop?: number;
    viewportWidth?: number;
    viewportHeight?: number;
    contentHeight?: number;
    selectedClipId?: string | null;
    selectedClipIds?: string[];
}
export declare class TimelineStore {
    private readonly selectionStore;
    private readonly playbackStore;
    private readonly viewportStore;
    constructor(initial: TimelineStoreInitialState);
    getPrimarySelectedClipId(): string | null;
    getSelectedClipId(): string | null;
    getSelectedClipIds(): string[];
    setSelectedClipIds(clipIds: string[]): void;
    setPrimarySelectedClipId(clipId: string | null): void;
    setSelectedClipId(clipId: string | null): void;
    clearSelection(): void;
    hasSelection(): boolean;
    getCurrentTime(): TimeMs;
    setCurrentTime(time: TimeMs): void;
    getPlayState(): PlayState;
    setPlayState(playState: PlayState): void;
    getSpeed(): number;
    setSpeed(speed: number): void;
    getZoom(): number;
    setZoom(zoom: number): void;
    getDuration(): TimeMs;
    setDuration(duration: TimeMs): void;
    getScrollLeft(): number;
    setScrollLeft(scrollLeft: number): void;
    getScrollTop(): number;
    setScrollTop(scrollTop: number): void;
    getViewportWidth(): number;
    setViewportWidth(viewportWidth: number): void;
    getViewportHeight(): number;
    setViewportHeight(viewportHeight: number): void;
    getContentHeight(): number;
    setContentHeight(contentHeight: number): void;
}
