import { TimelineTimePositionEvent } from "../../hooks/viewport/useTimelineTimePosition.mjs"; import "../../hooks/index.mjs"; import React from "react"; import { RationalTime } from "@techsquidtv/canvas-timeline-utils"; import { TimelineEngine } from "@techsquidtv/canvas-timeline-core"; //#region src/components/playhead/TimeGrabber.d.ts /** Render-prop payload for custom draggable time grabber children. */ interface TimeGrabberRenderProps { /** Whether the grabber is actively being dragged. */ dragging: boolean; /** Current time represented by the grabber. */ time: RationalTime; /** Timeline engine that owns drag updates. */ engine: TimelineEngine; } /** Custom node or render prop used inside a draggable time grabber. */ type TimeGrabberChildren = React.ReactNode | ((props: TimeGrabberRenderProps) => React.ReactNode); interface TimeGrabberProps extends Omit, 'children' | 'onDragStart' | 'onDragEnd'> { /** Additional class names applied to the positioned grabber shell. */ className?: string; /** Timeline engine used for positioning and drag updates. */ engine: TimelineEngine; /** Resolves the latest represented time for imperative event-driven updates. */ getTime?: () => RationalTime; /** Optional classes added to the default grabber affordance parts. */ partClassNames?: { highlight?: string; line?: string; handle?: string; }; /** Current time represented by this grabber. */ time: RationalTime; /** Event names that should re-sync DOM position without a React render. */ positionEvents?: TimelineTimePositionEvent[]; /** Called when a drag starts after pointer capture is acquired. */ onDragStart?: () => void; /** Called with each dragged time. */ onDragTimeChange: (time: RationalTime) => void; /** Called when dragging ends after the engine settles. */ onDragEnd?: () => void; /** Custom composable children node or render prop function. */ children?: TimeGrabberChildren; } declare const TimeGrabber: React.ForwardRefExoticComponent>; //#endregion export { TimeGrabber, TimeGrabberChildren, TimeGrabberProps, TimeGrabberRenderProps }; //# sourceMappingURL=TimeGrabber.d.mts.map