import type { Clip, Track } from '../models/types';
interface MutationWorkflowOptions {
    applied: boolean;
    isExecutingHistoryAction: boolean;
    recordHistory?: () => void;
    applyEffects: () => void;
}
interface MoveClipWorkflowOptions extends MutationWorkflowOptions {
    clipId: string;
    sourceTrackId: string;
    targetTrackId: string;
    clipBefore: Clip;
    clipAfter: Clip;
    sourceTrackSnapshot: Track | null;
    targetTrackSnapshot: Track | null;
    recordMoveClipBetweenTracks?: (clipId: string, sourceTrackId: string, targetTrackId: string, clipBefore: Clip, clipAfter: Clip, sourceTrackSnapshot: Track | null, targetTrackSnapshot: Track | null) => void;
}
interface SplitClipWorkflowOptions {
    clip1: Clip;
    clip2: Clip;
    isExecutingHistoryAction: boolean;
    recordSplitClip?: (clip1: Clip, clip2: Clip) => void;
    emitClipUpdated: (clip: Clip) => void;
    emitClipAdded: (clip: Clip) => void;
    applyEffects: () => void;
}
export declare function applyClipMutationWorkflow(options: MutationWorkflowOptions): boolean;
export declare function applyMoveClipWorkflow(options: MoveClipWorkflowOptions): boolean;
export declare function applySplitClipWorkflow(options: SplitClipWorkflowOptions): void;
export {};
