///
import { ApolloLink, Operation, GraphQLRequest, FetchResult } from '../../../link/core';
import { Observable } from '../../../utilities';
export declare type ResultFunction> = (variables: V) => T;
export declare type VariableMatcher = (variables: V) => boolean;
export interface MockedResponse, TVariables = Record> {
request: GraphQLRequest;
result?: FetchResult | ResultFunction, TVariables>;
error?: Error;
delay?: number;
variableMatcher?: VariableMatcher;
newData?: ResultFunction;
}
export declare class MockLink extends ApolloLink {
operation: Operation;
addTypename: Boolean;
private mockedResponsesByKey;
constructor(mockedResponses: ReadonlyArray, addTypename?: Boolean);
addMockedResponse(mockedResponse: MockedResponse): void;
request(operation: Operation): Observable | null;
private normalizeMockedResponse;
private normalizeVariableMatching;
}
export interface MockApolloLink extends ApolloLink {
operation?: Operation;
}
export declare function mockSingleLink(...mockedResponses: Array): MockApolloLink;
//# sourceMappingURL=mockLink.d.ts.map