import { RecordState } from 'relay-runtime';
import { MutableRecordSource, Record } from 'relay-runtime/lib/store/RelayStoreTypes';
import { DataCache, CacheOptions } from '@wora/cache-persist';
export interface IMutableRecordSourceOffline extends MutableRecordSource {
    restore(): Promise<DataCache>;
}
export declare class RecordSource implements IMutableRecordSourceOffline {
    private _cache;
    constructor(persistOptions?: CacheOptions);
    isRehydrated(): boolean;
    purge(): Promise<void>;
    restore(): Promise<DataCache>;
    clear(): void;
    delete(dataID: string): void;
    get(dataID: string): Record<any>;
    getRecordIDs(): Array<string>;
    getStatus(dataID: string): RecordState;
    has(dataID: string): boolean;
    remove(dataID: string): void;
    set(dataID: string, record: Record): void;
    size(): number;
    toJSON(): {
        [key: string]: Record;
    };
}
//# sourceMappingURL=RecordSource.d.ts.map