import { type AssetDragData } from './asset-drag-data'; import { type ComponentDimensions, type ComponentDragData, type ComponentProp } from './component-drag-data'; import { type AssetDragPreviewMetadata, type ComponentDragPreviewMetadata, type EffectDragPreviewMetadata, type ElementDragPreviewMetadata, type RenderOutputDragPreviewMetadata, type SfxDragPreviewMetadata } from './drag-preview-metadata'; import { type EffectDragData } from './effect-drag-data'; import { type ElementDragData } from './element-drag-data'; import { type RenderOutputDragData } from './render-output-drag-data'; import { type SfxDragData } from './sfx-drag-data'; export type MakeAssetDragDataInput = { readonly type: 'asset'; readonly assetPath: string; readonly width: number | null; readonly height: number | null; readonly durationInSeconds: number | null; }; export type MakeComponentDragDataInput = { readonly type: 'component'; readonly componentName: string; readonly dimensions?: ComponentDimensions | null; readonly importName: string; readonly importPath: string; readonly props: ComponentProp[]; }; export type MakeEffectDragDataInput = EffectDragData['effect'] & { readonly type: 'effect'; }; export type MakeElementDragDataInput = Omit & { readonly type: 'element'; readonly durationInFrames: number; readonly initialProps?: ElementDragData['element']['initialProps']; }; export type MakeSfxDragDataInput = SfxDragData['sfx'] & { readonly type: 'sfx'; }; export type MakeRenderOutputDragDataInput = { readonly type: 'render-output'; readonly outputPath: string; readonly fileName: string; }; export type MakeDragDataInput = MakeAssetDragDataInput | MakeComponentDragDataInput | MakeEffectDragDataInput | MakeElementDragDataInput | MakeRenderOutputDragDataInput | MakeSfxDragDataInput; export type ConstructedDragData = { readonly mimeType: string; readonly payload: string; readonly data: TData; }; export type SerializedDragData = Pick; export type DragDataTransfer = { readonly types: ArrayLike; readonly getData: (mimeType: string) => string; }; export type RemotionDragData = AssetDragData | ComponentDragData | EffectDragData | ElementDragData | RenderOutputDragData | SfxDragData; export type ParsedDragData = { readonly type: 'asset'; readonly data: AssetDragData; readonly preview: AssetDragPreviewMetadata; } | { readonly type: 'component'; readonly data: ComponentDragData; readonly preview: ComponentDragPreviewMetadata; } | { readonly type: 'effect'; readonly data: EffectDragData; readonly preview: EffectDragPreviewMetadata; } | { readonly type: 'element'; readonly data: ElementDragData; readonly preview: ElementDragPreviewMetadata; } | { readonly type: 'render-output'; readonly data: RenderOutputDragData; readonly preview: RenderOutputDragPreviewMetadata; } | { readonly type: 'sfx'; readonly data: SfxDragData; readonly preview: SfxDragPreviewMetadata; }; type MakeDragData = { (input: MakeAssetDragDataInput): ConstructedDragData; (input: MakeComponentDragDataInput): ConstructedDragData; (input: MakeEffectDragDataInput): ConstructedDragData; (input: MakeElementDragDataInput): ConstructedDragData; (input: MakeRenderOutputDragDataInput): ConstructedDragData; (input: MakeSfxDragDataInput): ConstructedDragData; (input: MakeDragDataInput): ConstructedDragData; }; export declare const makeDragData: MakeDragData; export declare const parseDragData: (source: DragDataTransfer | SerializedDragData) => ParsedDragData | null; export {};