import { LibraryItems, LibraryItem } from "../types"; import type App from "../components/App"; import { ImportedDataState } from "./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; /** * imports library (from blob or libraryItems), merging with current library * (attempting to remove duplicates) */ importLibrary(library: Blob | Required["libraryItems"] | Promise["libraryItems"]>, defaultStatus?: LibraryItem["status"]): Promise; /** * @returns latest cloned libraryItems. Awaits all in-progress updates first. */ getLatestLibrary: () => Promise; setLibrary: (libraryItems: LibraryItems | Promise | ((latestLibraryItems: LibraryItems) => LibraryItems | Promise)) => Promise; } export default Library;