import { type FC, type ReactNode } from 'react'; import type { TimelineClock } from '../core/timeline'; import type { DtypeId } from '../dtypes/types'; import type { TimelineConfig, TrackRow } from '../timeline/types/config'; /** * Dtype → view-component map for `` dispatch. * * Parallel to `TimelineViews` on the timeline side. Import * `defaultTrackerViews` for stock wiring or compose your own. */ export type TrackerViews = Record>; export interface TrackerContainerProps { /** * Same `TimelineConfig` shape that `` accepts. The * identical object can drive both containers — swap components, no * data transformation. */ config: TimelineConfig; /** * dtype → view component. Unknown dtypes fall through to `PlaceholderLane`. */ views: TrackerViews; /** * Optional shared `TimelineClock`. Resolved identically to * ``: explicit prop → outer `` → new * internal clock. Share a clock to sync with a timeline elsewhere on * the page. */ clock?: TimelineClock | null; /** * When true, mount a `` (play / pause / seek / * rate / loop) below the stack of views. Defaults to `false` — most * apps supply one controller globally. */ controller?: boolean; className?: string; /** * Optional per-track title renderer. Defaults to `track.name` or the * last segment of `track.path`. Return `null` to suppress titles. */ renderTitle?: (track: TrackRow) => ReactNode; } /** * Instant-state analog of ``. Dispatches each track in * the config to the matching view component from the `views` map. * * `` and `` take the **same** * `TimelineConfig`; swapping between them is a single component-name * change in app code. * * Layout defaults to a vertical stack (`flex flex-col gap-3`). Apps that * want a grid or side-by-side layout override `className` or compose * multiple ``s inside a custom wrapper. * * `config.groups` is ignored — the tracker is flat. Group-header * sectioning is a follow-up. */ export declare function TrackerContainer({ config, views, clock: clockProp, controller, className, renderTitle, }: TrackerContainerProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=TrackerContainer.d.ts.map