import { ApolloCache } from 'apollo-cache'; import { CachePersistor } from '..'; export declare type LogLevel = 'log' | 'warn' | 'error'; export declare type LogLine = [LogLevel, any[]]; export declare type TriggerUninstallFunction = () => void; export declare type TriggerFunction = (persist: () => void) => TriggerUninstallFunction; export declare type PersistedData = T | string | null; export interface PersistentStorage { getItem: (key: string) => Promise | T; setItem: (key: string, data: T) => Promise | void; removeItem: (key: string) => Promise | void; } export declare type OnEncryptionError = (error: Error, persistor: CachePersistor) => void; export interface EncryptOptions { onError?: OnEncryptionError; secretKey: string; } export interface ApolloPersistOptions { cache: ApolloCache; storage: PersistentStorage>; trigger?: 'write' | 'background' | TriggerFunction | false; debounce?: number; key?: string; serialize?: boolean; maxSize?: number | false; debug?: boolean; encrypt?: EncryptOptions; }