import { type Snippet } from 'svelte'; import type { BinItem, TimelineProject } from '../../types/timeline.js'; import { type EditorHost, type SectionCtx } from '../../core/host.js'; import { type MessagesOverride } from '../../i18n/messages.js'; import { type NotifyFn } from '../../core/notify.js'; import { type ConfirmFn } from '../../core/confirm.svelte.js'; type Props = { project: TimelineProject; onChange: (project: TimelineProject) => void; /** Debounce window (ms) for onChange. 0 = fire on every edit. */ changeDebounceMs?: number; resolveAsset: EditorHost['resolveAsset']; generateThumbnail: EditorHost['generateThumbnail']; generateWaveform?: EditorHost['generateWaveform']; onExport: EditorHost['onExport']; can: EditorHost['can']; magneticMainTrack?: boolean; /** Optional. When provided, a back button renders and calls this. */ onBack?: () => void; /** Transient feedback sink (blocked ops, clamped replace). No-ops if absent. */ onNotify?: NotifyFn; /** Override any UI label; unspecified keys fall back to English. */ messages?: MessagesOverride; /** Host-supplied confirmation; falls back to the built-in dialog. */ confirm?: ConfirmFn; /** Initial timeline-pane height (px); host owns persistence. */ timelineHeight?: number; /** Fired when the user drags the pane divider; host may persist it. */ onTimelineHeightChange?: (height: number) => void; /** Initial bin-column width (px); host owns persistence. */ binWidth?: number; /** Fired when the user drags the bin divider; host may persist it. */ onBinWidthChange?: (width: number) => void; /** Initial inspector-column width (px); host owns persistence. */ inspectorWidth?: number; /** Fired when the user drags the inspector divider; host may persist it. */ onInspectorWidthChange?: (width: number) => void; /** Host-owned import UI rendered inside the bin panel. */ binImport?: Snippet<[{ addItems: (items: BinItem[]) => void; }]>; /** Optional section overrides. Each replaces the corresponding default * section (including its wrapper element) and receives the editor * context as its argument; omitted sections render the built-ins. * On mobile (<768px) the `assetBin` and `inspector` overrides render * inside a bottom sheet instead of a side column, so avoid fixed widths * in those overrides. */ toolbar?: Snippet<[SectionCtx]>; assetBin?: Snippet<[SectionCtx]>; preview?: Snippet<[SectionCtx]>; transport?: Snippet<[SectionCtx]>; inspector?: Snippet<[SectionCtx]>; tracks?: Snippet<[SectionCtx]>; shortcutsFooter?: Snippet<[SectionCtx]>; }; declare const TimelineEditor: import("svelte").Component; type TimelineEditor = ReturnType; export default TimelineEditor;