import { OperationDescriptor, UploadableMap, Snapshot, INetwork } from 'relay-runtime';
import { OfflineFirstOptions, OfflineRecordCache } from '@vyer-technologies/offline-first';
import { EnvironmentConfig } from 'relay-runtime/lib/store/RelayModernEnvironment';
export type Payload = {
    operation: OperationDescriptor;
    optimisticResponse?: {
        [key: string]: any;
    };
    uploadables?: UploadableMap | null;
};
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
export type OfflineOptions<T> = Omit<OfflineFirstOptions<T>, 'execute' | 'onComplete' | 'onDiscard'> & {
    network?: INetwork;
    onComplete?: (options: {
        id: string;
        offlinePayload: OfflineRecordCache<T>;
        snapshot: Snapshot;
        response: any;
    }) => Promise<boolean>;
    onDiscard?: (options: {
        id: string;
        offlinePayload: OfflineRecordCache<T>;
        error: Error;
    }) => Promise<boolean>;
};
export type EnvironmentOfflineConfig = Omit<EnvironmentConfig, 'store'>;
export {};
//# sourceMappingURL=RelayOfflineTypes.d.ts.map