export interface TimelineSlotConfig { id: string; cooldownMs: number; enabled?: boolean; offsetMs?: number; } export interface TimelineSlot { readonly id: string; readonly cooldownMs: number; readonly remainingMs: number; readonly enabled: boolean; } export interface TimelineBoardState { readonly slots: readonly TimelineSlot[]; readonly elapsedMs: number; } export interface TimelineFire { slotId: string; slotIndex: number; atMs: number; } export interface TimelineTickResult { state: TimelineBoardState; fires: readonly TimelineFire[]; } /** @internal */ export declare function createTimelineBoardState(slots: readonly TimelineSlotConfig[]): TimelineBoardState; /** @internal */ export declare function tickTimeline(state: TimelineBoardState, dtMs: number): TimelineTickResult; /** @internal */ export declare function setSlotEnabled(state: TimelineBoardState, slotId: string, enabled: boolean): TimelineBoardState; /** @internal */ export declare function resetSlot(state: TimelineBoardState, slotId: string, remainingMs?: number): TimelineBoardState; export interface TimelineBoard { state(): TimelineBoardState; tick(dtMs: number): readonly TimelineFire[]; setEnabled(slotId: string, enabled: boolean): void; reset(slotId?: string, remainingMs?: number): void; } /** * A step-sequencer timeline board of timed, toggleable slots. * * @capability timeline-board a step-sequencer timeline board of timed slots * @internal */ export declare function createTimelineBoard(slots: readonly TimelineSlotConfig[]): TimelineBoard;