export interface Storage {
    getItem: (key: string) => string | null;
    setItem: (key: string, value: string) => void;
    removeItem: (key: string) => void;
}
export type PersistProp<T extends object> = {
    name: keyof T;
    override: boolean;
};
export declare class PersistStorageCache {
    #private;
    keyPrefix: string;
    constructor(storage?: Storage);
    resetPersistPropertiesCache(): void;
    getStorageItem<TItem = unknown>(prefix: string, property: PropertyKey): TItem | undefined;
    setStorageItem(prefix: string, property: PropertyKey, item: unknown): void;
    persistProperties<T extends object = object>(parent: T, key: string, properties: Array<PersistProp<T>>, cachePrefix?: string): void;
}
//# sourceMappingURL=persist-properties.d.ts.map