interface SetItemOptions {
    ttl?: number;
}
interface PersistentStoreHooks {
    beforeExpiredCleanup?: (key: string) => void | Promise<void>;
}
export declare function createPersistentStore(directory: string, hooks?: PersistentStoreHooks): {
    ready: Promise<undefined>;
    getItem: <T = unknown>(key: string) => Promise<T | undefined>;
    setItem: (key: string, value: unknown, options?: SetItemOptions) => Promise<{
        file: string;
    }>;
    removeItem: (key: string) => Promise<void>;
    keys: () => Promise<string[]>;
    forEachItem: (callback: (entry: {
        key: string;
        value: unknown;
    }) => void | Promise<void>) => Promise<void>;
};
export declare const getItem: <T = unknown>(key: string) => Promise<T | undefined>;
export declare const setItem: (key: string, value: unknown, options?: SetItemOptions) => Promise<{
    file: string;
}>;
export declare const removeItem: (key: string) => Promise<void>;
export declare const keys: () => Promise<string[]>;
export declare const forEachItem: (callback: (entry: {
    key: string;
    value: unknown;
}) => void | Promise<void>) => Promise<void>;
/** Persist a credential-bearing value and fail if its resulting file is not private. */
export declare function setPrivateItem(key: string, value: unknown, options?: SetItemOptions): Promise<void>;
export {};
//# sourceMappingURL=storage.d.mts.map