import { RationalTime } from "@techsquidtv/canvas-timeline-utils"; import { TimelineCommandResult, TimelineDeleteRangeEditCommand, TimelineEditCommand, TimelineEditCommitResult, TimelineEditPreview, TimelineEditValidationResult, TimelineInsertClipGroupEditCommand, TimelineInsertEditCommand, TimelineMoveEditCommand, TimelineOverwriteClipGroupEditCommand, TimelineOverwriteEditCommand, TimelineRippleTrimEditCommand, TimelineRollTrimEditCommand, TimelineSlideEditCommand, TimelineSplitEditCommand, TimelineTrimEditCommand } from "@techsquidtv/canvas-timeline-core"; //#region src/hooks/editing/useTimelineEditCommands.d.ts /** Result returned by `useTimelineEditCommands`. */ interface UseTimelineEditCommandsResult { /** Validates a typed edit command without mutating timeline state. */ validateEdit: (command: TimelineEditCommand) => TimelineEditValidationResult; /** Resolves and publishes a non-mutating command preview. */ previewEdit: (command: TimelineEditCommand) => TimelineEditPreview; /** Commits a typed edit command as one history entry. */ commitEdit: (command: TimelineEditCommand) => TimelineCommandResult; /** Clears the active command preview. */ cancelEdit: () => void; /** Commits a move command. */ moveClip: (command: Omit) => TimelineCommandResult; /** Commits a trim command. */ trimClip: (command: Omit) => TimelineCommandResult; /** Commits a ripple-trim command. */ rippleTrimClip: (command: Omit) => TimelineCommandResult; /** Commits a roll-trim command. */ rollTrim: (command: Omit) => TimelineCommandResult; /** Commits a slip command. */ slipClip: (clipId: string, deltaTime: RationalTime) => TimelineCommandResult; /** Commits a slide command. */ slideClip: (command: Omit) => TimelineCommandResult; /** Commits a split command for one clip. */ splitClip: (clipId: string, time: RationalTime) => TimelineCommandResult; /** Commits a split command for multiple clips. */ splitClips: (command: Omit) => TimelineCommandResult; /** Splits the current selected clips at a timeline time. */ splitSelectedClipsAtTime: (time: RationalTime) => TimelineCommandResult; /** Commits a delete command for one clip and any linked group members. */ deleteClip: (clipId: string) => TimelineCommandResult; /** Deletes multiple clips and linked group members atomically as one history entry. */ deleteClips: (clipIds: readonly string[]) => TimelineCommandResult; /** Deletes the current selection, including linked group members. */ deleteSelectedClips: () => TimelineCommandResult; /** Commits an insert command. */ insertClip: (command: Omit) => TimelineCommandResult; /** Commits a grouped insert command. */ insertClipGroup: (command: Omit) => TimelineCommandResult; /** Commits an overwrite command. */ overwriteClip: (command: Omit) => TimelineCommandResult; /** Commits a grouped overwrite command. */ overwriteClipGroup: (command: Omit) => TimelineCommandResult; /** Commits a range delete command. */ deleteRange: (command: Omit) => TimelineCommandResult; /** Commits a lift-range command. */ liftRange: (command: { startTime: RationalTime; endTime: RationalTime; trackIds?: readonly string[]; }) => TimelineCommandResult; } /** * Exposes command-layer edit APIs for React product chrome. * * The hook is a thin adapter over `TimelineEngine` command methods; it does not * implement edit math or range mutation rules in React. * * @returns Typed command builders and generic command-layer APIs. */ declare function useTimelineEditCommands(): UseTimelineEditCommandsResult; //#endregion export { UseTimelineEditCommandsResult, useTimelineEditCommands }; //# sourceMappingURL=useTimelineEditCommands.d.mts.map