/**
 * borrow from https://github.com/excalidraw/excalidraw/blob/master/packages/excalidraw/data/filesystem.ts#L80
 */
import { MIME_TYPES } from '@infinite-canvas-tutorial/ecs';
export declare const debounce: <T extends any[]>(fn: (...args: T) => void, timeout: number) => {
    (...args: T): void;
    flush(): void;
    cancel(): void;
};
/**
 * borrow from https://github.com/excalidraw/excalidraw/blob/master/packages/excalidraw/data/filesystem.ts
 */
type FILE_EXTENSION = Exclude<keyof typeof MIME_TYPES, 'binary'>;
export declare const fileOpen: <M extends boolean | undefined = false>(opts: {
    extensions?: FILE_EXTENSION[];
    description: string;
    multiple?: M;
}) => Promise<M extends false | undefined ? File : File[]>;
export declare const fileSave: (blob: Blob | Promise<Blob>, opts: {
    /** supply without the extension */
    name: string;
    /** file extension */
    extension: FILE_EXTENSION;
    mimeTypes?: string[];
    description: string;
    /** existing FileSystemHandle */
    fileHandle?: FileSystemFileHandle | null;
}) => Promise<FileSystemFileHandle>;
export declare function getDataURL(file: Blob | File): Promise<string>;
export {};
