import { Environment as RelayEnvironment, Observable as RelayObservable, GraphQLResponse, Disposable, SelectorStoreUpdater, OperationDescriptor, UploadableMap } from 'relay-runtime';
import { EnvironmentConfig } from 'relay-runtime/lib/store/RelayModernEnvironment';
import { CacheOptions } from '@vyer-technologies/cache-persist';
import { OfflineFirst } from '@vyer-technologies/offline-first';
import { Payload, OfflineOptions } from './RelayOfflineTypes';
export declare class Environment extends RelayEnvironment {
    private _rehydrated;
    private _relayStoreOffline;
    private promisesRestore;
    constructor(config: EnvironmentConfig, persistOfflineOptions?: CacheOptions);
    setOfflineOptions(offlineOptions?: OfflineOptions<Payload>): void;
    private executeStoreOffline;
    clearCache(): Promise<boolean>;
    dispose(): void;
    hydrate(): Promise<boolean>;
    isRehydrated(): boolean;
    isOnline(): boolean;
    getStoreOffline(): OfflineFirst<Payload>;
    retain(operation: OperationDescriptor, configRetain?: {
        ttl?: number;
    }): Disposable;
    disposePersisted(id: string): Promise<void>;
    executeMutationOffline({ operation, optimisticResponse, optimisticUpdater, updater, uploadables, }: {
        operation: OperationDescriptor;
        optimisticUpdater?: SelectorStoreUpdater | null;
        optimisticResponse?: {
            [key: string]: any;
        } | null;
        updater?: SelectorStoreUpdater | null;
        uploadables?: UploadableMap | null;
    }): RelayObservable<GraphQLResponse>;
    executeMutation(mutationOptions: {
        operation: OperationDescriptor;
        optimisticUpdater?: SelectorStoreUpdater | null;
        optimisticResponse?: {
            [key: string]: any;
        } | null;
        updater?: SelectorStoreUpdater | null;
        uploadables?: UploadableMap | null;
    }): RelayObservable<GraphQLResponse>;
}
//# sourceMappingURL=Environment.d.ts.map