import type { MediaKind, TimelineEngine } from '@elah/core'; import type { DragElementPayload } from './elementDrag'; import { isCompatibleTrackKind } from './trackCompat'; export { isCompatibleTrackKind }; export interface InsertAssetOptions { desiredStartFrame?: number; targetTrackId?: string; videoOnly?: boolean; } export type InsertAssetFailureReason = 'missing-asset' | 'no-track' | 'locked' | 'incompatible-track' | 'cancelled'; export type InsertedKind = MediaKind | 'element'; export type InsertAssetResult = { ok: true; kind: InsertedKind; trackId: string; clipIds: string[]; } | { ok: false; kind: InsertedKind; reason: InsertAssetFailureReason; }; export declare function resolveDropPosition(existingClips: { startFrame: number; durationFrames: number; }[], desiredStart: number, durationFrames: number): { startFrame: number; durationFrames: number; }; export declare function insertMediaAsset(engine: TimelineEngine, assetId: string, opts?: InsertAssetOptions): Promise; export declare function insertElement(engine: TimelineEngine, payload: DragElementPayload, opts?: InsertAssetOptions): InsertAssetResult; export declare function growClipToAssetDuration(engine: TimelineEngine, clipId: string, expectedFallbackFrames: number, newDurationSec: number): void;