import { LibraryItems, ExcalidrawImperativeAPI, LibraryItemsSource } from "../types"; import type App from "../components/App"; import { ExcalidrawElement } from "../element/types"; export declare const libraryItemsAtom: import("jotai").Atom<{ status: "loading" | "loaded"; isInitialized: boolean; libraryItems: LibraryItems; }> & { write: (get: { (atom: import("jotai").Atom>): Value; (atom: import("jotai").Atom>): Value_1; (atom: import("jotai").Atom): Value_2 extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? any : V : V : V : V : V : V : V : V : V : V : Value_2; } & { (atom: import("jotai").Atom>, options: { unstable_promise: true; }): Value_3 | Promise; (atom: import("jotai").Atom>, options: { unstable_promise: true; }): Value_4 | Promise; (atom: import("jotai").Atom, options: { unstable_promise: true; }): (Value_5 extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? V extends Promise ? any : V : V : V : V : V : V : V : V : V : V : Value_5>; }, set: { >(atom: import("jotai").WritableAtom): Result; >(atom: import("jotai").WritableAtom, update: Update): Result_1; }, update: { status: "loading" | "loaded"; isInitialized: boolean; libraryItems: LibraryItems; } | ((prev: { status: "loading" | "loaded"; isInitialized: boolean; libraryItems: LibraryItems; }) => { status: "loading" | "loaded"; isInitialized: boolean; libraryItems: LibraryItems; })) => void; onMount?: ( { status: "loading" | "loaded"; isInitialized: boolean; libraryItems: LibraryItems; })) => void>(setAtom: S) => void | (() => void)) | undefined; } & { init: { status: "loading" | "loaded"; isInitialized: boolean; libraryItems: LibraryItems; }; }; /** Merges otherItems into localItems. Unique items in otherItems array are sorted first. */ export declare const mergeLibraryItems: (localItems: LibraryItems, otherItems: LibraryItems) => LibraryItems; declare class Library { /** latest libraryItems */ private lastLibraryItems; /** indicates whether library is initialized with library items (has gone * though at least one update) */ private isInitialized; private app; constructor(app: App); private updateQueue; private getLastUpdateTask; private notifyListeners; resetLibrary: () => Promise; /** * @returns latest cloned libraryItems. Awaits all in-progress updates first. */ getLatestLibrary: () => Promise; updateLibrary: ({ libraryItems, prompt, merge, openLibraryMenu, defaultStatus, }: { libraryItems: LibraryItemsSource; merge?: boolean | undefined; prompt?: boolean | undefined; openLibraryMenu?: boolean | undefined; defaultStatus?: "published" | "unpublished" | undefined; }) => Promise; setLibrary: (libraryItems: LibraryItems | Promise | ((latestLibraryItems: LibraryItems) => LibraryItems | Promise)) => Promise; } export default Library; export declare const distributeLibraryItemsOnSquareGrid: (libraryItems: LibraryItems) => ExcalidrawElement[]; export declare const parseLibraryTokensFromUrl: () => { libraryUrl: string; idToken: string | null; } | null; export declare const useHandleLibrary: ({ excalidrawAPI, getInitialLibraryItems, }: { excalidrawAPI: ExcalidrawImperativeAPI | null; getInitialLibraryItems?: (() => LibraryItemsSource) | undefined; }) => void;