import { UseTimelineTrackCommandsResult } from "./useTimelineTrackCommands.mjs"; import { TimelineReadonly, Track } from "@techsquidtv/canvas-timeline-core"; //#region src/hooks/tracks/useTimelineTracks.d.ts /** * Result returned by `useTimelineTracks`. * * @remarks * * Use this result for track lists, timeline sidebars, source-bin filters, and * command bars that need to inspect or mutate the ordered track collection. For * one row's DOM-ready state, use {@link useTimelineTrack} or * {@link useTimelineTrackHeader} instead. * * tracks, such as `"visual" | "audio"`. * * @see {@link https://canvastimeline.com/docs/tracks-and-clips | Tracks and clips} * @see {@link https://canvastimeline.com/docs/react-hooks | React editor hooks} */ interface UseTimelineTracksResult extends UseTimelineTrackCommandsResult { /** Current ordered track list. */ tracks: readonly TimelineReadonly[]; /** Currently selected track, or null when no track is selected. */ selectedTrack: TimelineReadonly | null; /** Tracks currently participating in active layer and media lookup. */ visibleTracks: TimelineReadonly[]; /** Tracks currently hidden from active layer and media lookup. */ hiddenTracks: TimelineReadonly[]; /** Tracks currently targeted for edit operations. */ targetedTracks: TimelineReadonly[]; /** Tracks grouped by group id, with ungrouped tracks under "ungrouped". */ tracksByGroupId: Record[]>; } /** * Accesses and manages the list of timeline tracks. * * @remarks * * `useTimelineTracks` is the broad track-domain hook. It is useful for * rendering track rows, building track header columns, grouping tracks, and * wiring mute/visibility/lock controls. It returns command helpers that fail * with {@link TimelineCommandResult} objects instead of throwing when a track is * missing. * * @returns Track collection state and commands for selecting and updating tracks. * tracks, such as `"visual" | "audio"`. * * @example * ```tsx * import { Timeline, useTimelineTracks } from '@techsquidtv/canvas-timeline-react'; * * export function TrackRows() { * const { tracks } = useTimelineTracks(); * * return ( * * {tracks.map((track) => ( * * ))} * * ); * } * ``` * * @example * ```tsx * import { useTimelineTracks } from '@techsquidtv/canvas-timeline-react'; * * export function TrackVisibilityMenu() { * const { tracks, setVisible } = useTimelineTracks(); * * return tracks.map((track) => ( * * )); * } * ``` * * @see {@link useTimelineTrack} * @see {@link useTimelineTrackHeader} * @see {@link https://canvastimeline.com/demos/timeline-editor-controls | Timeline editor controls demo} */ declare function useTimelineTracks(): UseTimelineTracksResult; //#endregion export { UseTimelineTracksResult, useTimelineTracks }; //# sourceMappingURL=useTimelineTracks.d.mts.map