import { GraphQLTaggedNode, Variables, OperationDescriptor, ConcreteRequest, GraphQLSingularResponse, CacheConfig, IEnvironment } from 'relay-runtime';
type OperationMockResolver = (operation: OperationDescriptor) => GraphQLSingularResponse | Error | undefined;
type MockFunctions = {
    hydrate: () => Promise<any>;
    clearCache: () => void;
    cachePayload: (request: ConcreteRequest | OperationDescriptor, variables: Variables, payload: GraphQLSingularResponse) => void;
    isLoading: (request: ConcreteRequest | OperationDescriptor, variables: Variables, cacheConfig?: CacheConfig) => boolean;
    reject: (request: ConcreteRequest | OperationDescriptor, error: Error | string) => void;
    nextValue: (request: ConcreteRequest | OperationDescriptor, payload: GraphQLSingularResponse) => void;
    complete: (request: ConcreteRequest | OperationDescriptor) => void;
    resolve: (request: ConcreteRequest | OperationDescriptor, payload: GraphQLSingularResponse) => void;
    getAllOperations: () => ReadonlyArray<OperationDescriptor>;
    findOperation: (findFn: (operation: OperationDescriptor) => boolean) => OperationDescriptor;
    queuePendingOperation: (query: GraphQLTaggedNode, variables: Variables) => void;
    getMostRecentOperation: () => OperationDescriptor;
    resolveMostRecentOperation: (payload: GraphQLSingularResponse | ((operation: OperationDescriptor) => GraphQLSingularResponse)) => void;
    rejectMostRecentOperation: (error: Error | ((operation: OperationDescriptor) => Error)) => void;
    queueOperationResolver: (resolver: OperationMockResolver) => void;
};
interface MockEnvironment {
    mock: MockFunctions;
    mockClear: () => void;
}
export interface RelayMockEnvironment extends MockEnvironment, IEnvironment {
}
export declare function createMockEnvironment(config?: Partial<any>): RelayMockEnvironment;
export {};
//# sourceMappingURL=createMockEnvironment.d.ts.map