import { Clip, TimelineClipEntry, TimelineClipEntry as TimelineClipEntry$1, TimelineClipGroup, TimelineReadonly, Track } from "@techsquidtv/canvas-timeline-core"; //#region src/hooks/clips/timelineClipModel.d.ts /** * Selected clip and track state derived from the current timeline snapshot. * * @template TrackKind - App-defined track kind. */ interface TimelineSelectionState { /** Currently selected clip, or null when no clip is selected. */ selectedClip: TimelineReadonly | null; /** ID of the currently selected clip, or null when no clip is selected. */ selectedClipId: string | null; /** ID of the track containing the selected clip, or null when no clip is selected. */ selectedClipTrackId: string | null; /** All selected clips in track order. */ selectedClips: TimelineReadonly[]; /** IDs of all selected clips in track order. */ selectedClipIds: string[]; /** Selected group when the primary selected clip belongs to one. */ selectedGroup: TimelineReadonly | null; /** Selected group id when the primary selected clip belongs to one. */ selectedGroupId: string | null; /** Whether any clip or track is selected. */ hasSelection: boolean; /** Currently selected track, or null when no track row is selected. */ selectedTrack: TimelineReadonly> | null; /** ID of the currently selected track, or null when no track row is selected. */ selectedTrackId: string | null; } /** * Flattens timeline tracks into stable clip entries. * * @param tracks - Timeline tracks to flatten. * @template TrackKind - App-defined track kind values carried by returned * entries. * @returns Flattened clip entries in track order. */ declare function flattenTimelineClips(tracks: readonly TimelineReadonly>[]): TimelineClipEntry$1[]; /** * Derives selected clip and track metadata from timeline tracks. * * @param tracks - Timeline tracks to inspect. * @param clipGroups - Clip group state used to derive selected group metadata. * @template TrackKind - App-defined track kind values carried by selected track * state. * @returns Current selection metadata. */ declare function deriveTimelineSelection(tracks: readonly TimelineReadonly>[], clipGroups?: readonly TimelineReadonly[]): TimelineSelectionState; //#endregion export { type TimelineClipEntry, TimelineSelectionState, deriveTimelineSelection, flattenTimelineClips }; //# sourceMappingURL=timelineClipModel.d.mts.map