import React from "react"; import { TimecodeFrameRate } from "@techsquidtv/canvas-timeline-utils"; import { TimelineEngine, TimelineInteractionGeometry, TimelineKeyframeHitTestResult, TimelineKeyframePropertyId, TimelineKeyframeRect } from "@techsquidtv/canvas-timeline-core"; //#region src/components/interactions/KeyframeInteractionLayer.d.ts /** * Details passed to a keyframe double-click or double-tap callback. */ interface KeyframeDoubleClickDetails { /** Timeline engine owning the keyframe. */ engine: TimelineEngine; /** Original pointer event. */ event: PointerEvent; } /** * Details passed to a keyframe keyboard delete callback. */ interface KeyframeDeleteDetails { /** Timeline engine owning the keyframe. */ engine: TimelineEngine; /** Original keyboard event. */ event: React.KeyboardEvent; } /** * Props for the delegated keyframe interaction layer. */ interface KeyframeInteractionLayerProps extends Omit, keyof TimelineInteractionGeometry>, TimelineInteractionGeometry { /** Keyframe property to render and hit-test. */ property: TimelineKeyframePropertyId; /** Only render keyframes owned by selected clips. Defaults to false. */ selectedClipOnly?: boolean; /** Extra pixels around the viewport included in visible keyframe queries. */ overscanPixels?: number; /** Keyframe affordance square size in CSS pixels. */ keyframeSize?: number; /** * Invisible pointer padding in CSS pixels added around each keyframe handle. * * Presses inside the padded area target the keyframe instead of falling * through to lower interaction layers such as the clip layer. Defaults to 8. */ hitPadding?: number; /** Vertical padding used when mapping keyframe values into a clip row. */ keyframeValuePadding?: number; /** Keyboard nudge amount in seconds for left/right arrow keys. Defaults to one frame at the configured frame rate. */ keyboardStepSeconds?: number; /** Frame rate for snapping and keyboard nudges; defaults to the engine configuration. */ frameRate?: TimecodeFrameRate; /** Normalized value change for up/down arrow nudges. Defaults to one percent. */ keyboardValueStep?: number; /** Optional handler for double-click or double-tap gestures on keyframe handles. */ onKeyframeDoubleClick?: (keyframe: TimelineKeyframeRect, details: KeyframeDoubleClickDetails) => void; /** Optional handler for Delete/Backspace key gestures on keyframe handles. */ onKeyframeDelete?: (keyframe: TimelineKeyframeRect, details: KeyframeDeleteDetails) => void; /** Optional accessible label formatter for a canvas-rendered keyframe. */ getKeyframeAriaLabel?: (keyframe: TimelineKeyframeHitTestResult) => string; } /** Delegated keyframe editing with one focus target and one active affordance. */ declare const KeyframeInteractionLayer: React.ForwardRefExoticComponent>; //#endregion export { KeyframeDeleteDetails, KeyframeDoubleClickDetails, KeyframeInteractionLayer, KeyframeInteractionLayerProps }; //# sourceMappingURL=KeyframeInteractionLayer.d.mts.map