import type { Clip, SelectedClipAudioAction, SelectionChangeData } from '../models/types';
export interface SelectedClipSnapshot {
    clip: Clip | null;
    hasSelectedClip: boolean;
}
interface ResolveSelectedClipOptions {
    getPrimarySelectedClip: () => Clip | null;
    findFallbackSelectedClip?: () => Clip | null;
}
interface ResolveSelectionChangeOptions extends ResolveSelectedClipOptions {
    getSelectedClipIds: () => string[];
    canSplitSelectedClip: () => boolean;
    getSelectedClipAudioAction: () => SelectedClipAudioAction;
}
interface EmitSelectedClipChangeOptions {
    lastSelectedClipId: string | null;
    resolveSelectedClip: () => SelectedClipSnapshot;
    emitSelectedClipChange: (payload: SelectedClipSnapshot) => void;
}
export declare function resolveSelectedClipSnapshot(options: ResolveSelectedClipOptions): SelectedClipSnapshot;
export declare function resolveSelectionChangeData(options: ResolveSelectionChangeOptions): SelectionChangeData;
export declare function emitSelectedClipChangeIfNeeded(options: EmitSelectedClipChangeOptions): string | null;
export {};
