import { HistoryManager } from '../history/history';
import type { Action, Clip, ClipStateUpdate, Track, TrackRestoreAnchor } from '../models/types';
export declare class TimelineHistoryRecorder {
    private readonly history;
    constructor(history: HistoryManager);
    createAddClipAction(clip: Clip): Action;
    recordAddClip(clip: Clip): Action;
    createRemoveClipAction(clip: Clip, sourceTrackId?: string | null, sourceTrackSnapshot?: Track | null, sourceTrackRestoreAnchor?: TrackRestoreAnchor | null): Action;
    recordRemoveClip(clip: Clip, sourceTrackId?: string | null, sourceTrackSnapshot?: Track | null, sourceTrackRestoreAnchor?: TrackRestoreAnchor | null): Action;
    recordClipUpdate(clip: Clip, originalClip?: Clip, clipUpdates?: ClipStateUpdate[]): Action | null;
    recordSplitClip(clip1: Clip, clip2: Clip): Action;
    recordRemoveGaps(clipsBefore: Clip[]): Action | null;
    recordMoveClipBetweenTracks(clipId: string, sourceTrackId: string, targetTrackId: string, clipBefore: Clip, clipAfter: Clip, sourceTrackSnapshot: Track | null, targetTrackSnapshot: Track | null): Action;
    recordSeparateClipAudio(videoClipBefore: Clip, videoClipAfter: Clip, audioClip: Clip | null, audioTrackId: string | null): Action;
    recordRestoreClipAudio(videoClipBefore: Clip, videoClipAfter: Clip, audioClip: Clip | null, audioTrackId: string | null): Action;
    createSeparateClipAudioAction(videoClipBefore: Clip, videoClipAfter: Clip, audioClip: Clip | null, audioTrackId: string | null): Action;
    createRestoreClipAudioAction(videoClipBefore: Clip, videoClipAfter: Clip, audioClip: Clip | null, audioTrackId: string | null): Action;
    recordCompoundAction(actions: Action[], label?: string): Action | null;
    private createClipUpdateAction;
}
