import { ExcalidrawElement, FileId } from "../../element/types";
import Portal from "../collab/Portal";
import { AppState, BinaryFileData } from "../../types";
import Video from "twilio-video";
import { SyncableExcalidrawElement } from ".";
export declare const loadFirebaseStorage: (firebaseConfig: any) => Promise<typeof import("firebase/app").default>;
export declare const isSavedToFirebase: (portal: Portal, elements: readonly ExcalidrawElement[]) => boolean;
export declare const saveFilesToFirebase: ({ prefix, files, firebaseConfig, }: {
    prefix: string;
    files: {
        id: FileId;
        buffer: Uint8Array;
    }[];
    firebaseConfig: any;
}) => Promise<{
    savedFiles: Map<FileId, true>;
    erroredFiles: Map<FileId, true>;
}>;
export declare const saveToFirebase: (portal: Portal, elements: readonly SyncableExcalidrawElement[], appState: AppState, firebaseConfig: any) => Promise<false | {
    reconciledElements: SyncableExcalidrawElement[] | null;
}>;
export declare const loadFromFirebase: (roomId: string, roomKey: string, socket: Video.Room | null, firebaseConfig: any) => Promise<readonly ExcalidrawElement[] | null>;
export declare const loadFilesFromFirebase: (prefix: string, decryptionKey: string, filesIds: readonly FileId[], firebaseConfig: any) => Promise<{
    loadedFiles: BinaryFileData[];
    erroredFiles: Map<FileId, true>;
}>;
