import { type CompositionDragData, type ComponentProp, type FileType, type InsertableCompositionElementPosition } from '@remotion/studio-shared';
import type { Dimensions } from '../helpers/is-current-selected-still';
export type InsertElementDropPosition = {
    readonly centerX: number;
    readonly centerY: number;
};
export declare const getAssetElement: ({ fileType, src, }: {
    fileType: FileType;
    src: string;
}) => {
    type: "asset";
    assetType: "animated-image" | "audio" | "gif" | "image" | "video";
    src: string;
    srcType: "remote" | "static";
    dimensions: {
        width: number;
        height: number;
    } | null;
    position: InsertableCompositionElementPosition | null;
} | null;
export declare const getAssetElementFromPath: (assetPath: string) => {
    type: "asset";
    assetType: "animated-image" | "audio" | "gif" | "image" | "video";
    src: string;
    srcType: "remote" | "static";
    dimensions: {
        width: number;
        height: number;
    } | null;
    position: InsertableCompositionElementPosition | null;
} | null;
export declare const getAssetElementForDroppedFile: ({ fileType, src, }: {
    fileType: FileType;
    src: string;
}) => {
    type: "asset";
    assetType: "animated-image" | "audio" | "gif" | "image" | "video";
    src: string;
    srcType: "remote" | "static";
    dimensions: {
        width: number;
        height: number;
    } | null;
    position: InsertableCompositionElementPosition | null;
} | null;
export declare const getElementPositionForDrop: ({ dimensions, dropPosition, }: {
    dimensions: Dimensions | null;
    dropPosition: InsertElementDropPosition | null;
}) => InsertableCompositionElementPosition | null;
export declare const getCompositionPositionForDrop: ({ compositionDimensions, destinationDimensions, dropPosition, }: {
    compositionDimensions: Dimensions;
    destinationDimensions: Dimensions | null;
    dropPosition: InsertElementDropPosition | null;
}) => InsertableCompositionElementPosition | null;
export declare const getAssetPositionForDrop: ({ assetDimensions, destinationDimensions, dropPosition, }: {
    assetDimensions: Dimensions | null;
    destinationDimensions: Dimensions | null;
    dropPosition: InsertElementDropPosition | null;
}) => InsertableCompositionElementPosition | null;
export declare const getComponentDimensions: (component: {
    componentName: string;
    dimensions?: import("@remotion/studio-shared").ComponentDimensions | undefined;
    importName: string;
    importPath: string;
    props: ComponentProp[];
}) => Dimensions | null;
export declare const pickFilesToImport: ({ multiple, }?: {
    readonly multiple?: boolean | undefined;
}) => Promise<File[]>;
export declare const importAssets: ({ compositionFile, compositionId, destinationDimensions, dropPosition, files, }: {
    compositionFile: string;
    compositionId: string;
    destinationDimensions: Dimensions | null;
    dropPosition: InsertElementDropPosition | null;
    files: File[];
}) => Promise<void>;
export declare const importRemoteAsset: ({ compositionFile, compositionId, destinationDimensions, dropPosition, url, }: {
    compositionFile: string;
    compositionId: string;
    destinationDimensions: Dimensions | null;
    dropPosition: InsertElementDropPosition | null;
    url: string;
}) => Promise<void>;
export declare const insertRemoteAudio: ({ compositionFile, compositionId, url, }: {
    compositionFile: string;
    compositionId: string;
    url: string;
}) => Promise<void>;
export declare const insertExistingAssets: ({ assetPaths, compositionFile, compositionId, destinationDimensions, dropPosition, }: {
    assetPaths: string[];
    compositionFile: string;
    compositionId: string;
    destinationDimensions: Dimensions | null;
    dropPosition: InsertElementDropPosition | null;
}) => Promise<void>;
export declare const insertComponent: ({ component, compositionFile, compositionId, dropPosition, }: {
    component: {
        componentName: string;
        dimensions?: import("@remotion/studio-shared").ComponentDimensions | undefined;
        importName: string;
        importPath: string;
        props: ComponentProp[];
    };
    compositionFile: string;
    compositionId: string;
    dropPosition: InsertElementDropPosition | null;
}) => Promise<void>;
export declare const insertComposition: ({ composition, compositionFile, compositionId, destinationDimensions, dropPosition, }: {
    composition: CompositionDragData;
    compositionFile: string;
    compositionId: string;
    destinationDimensions: Dimensions | null;
    dropPosition: InsertElementDropPosition | null;
}) => Promise<void>;
export declare const insertElement: ({ compositionFile, compositionId, dropPosition, element, }: {
    compositionFile: string;
    compositionId: string;
    dropPosition: InsertElementDropPosition | null;
    element: {
        dependencies: string[];
        slug: string;
        displayName: string;
        sourceCode: string;
        dimensions: import("@remotion/studio-shared").ComponentDimensions | null;
    };
}) => Promise<void>;
