import type { TypedDocumentNode } from "@apollo/client";
import { ApolloLink } from "@apollo/client";
import type { MaskedDocumentNode } from "@apollo/client/masking";
import type { MockedResponse } from "@apollo/client/testing/core";
export interface SimpleCaseData {
    greeting: string;
}
export declare function setupSimpleCase(): {
    query: TypedDocumentNode<SimpleCaseData, Record<string, never>>;
    mocks: MockedResponse<SimpleCaseData, Record<string, any>>[];
};
export interface VariablesCaseData {
    character: {
        __typename: "Character";
        id: string;
        name: string;
    };
}
export interface VariablesCaseVariables {
    id: string;
}
export declare function setupVariablesCase(): {
    mocks: MockedResponse<VariablesCaseData, VariablesCaseVariables>[];
    query: TypedDocumentNode<VariablesCaseData, VariablesCaseVariables>;
};
type MaskedVariablesCaseFragment = {
    __typename: "Character";
    name: string;
} & {
    " $fragmentName"?: "MaskedVariablesCaseFragment";
};
export interface MaskedVariablesCaseData {
    character: {
        __typename: "Character";
        id: string;
    } & {
        " $fragmentRefs"?: {
            MaskedVariablesCaseFragment: MaskedVariablesCaseFragment;
        };
    };
}
export interface UnmaskedVariablesCaseData {
    character: {
        __typename: "Character";
        id: string;
        name: string;
    };
}
export declare function setupMaskedVariablesCase(): {
    mocks: MockedResponse<MaskedVariablesCaseData, Record<string, any>>[];
    query: MaskedDocumentNode<MaskedVariablesCaseData, VariablesCaseVariables>;
    unmaskedQuery: TypedDocumentNode<MaskedVariablesCaseData, VariablesCaseVariables>;
};
export declare function addDelayToMocks<T extends MockedResponse<unknown>[]>(mocks: T, delay?: number, override?: boolean): {
    request: import("@apollo/client/testing/core").MockedRequest<Record<string, any>>;
    maxUsageCount?: number;
    result?: import("@apollo/client").FetchResult<unknown> | import("@apollo/client/testing/core").ResultFunction<import("@apollo/client").FetchResult<unknown>, Record<string, any>> | undefined;
    error?: Error;
    delay: number | import("@apollo/client/testing/core").MockLink.DelayFunction;
}[];
interface Letter {
    __typename: "Letter";
    letter: string;
    position: number;
}
export interface PaginatedCaseData {
    letters: Letter[];
}
export interface PaginatedCaseVariables {
    limit?: number;
    offset?: number;
}
export declare function setupPaginatedCase(): {
    query: TypedDocumentNode<PaginatedCaseData, PaginatedCaseVariables>;
    link: ApolloLink;
    data: {
        __typename: string;
        letter: string;
        position: number;
    }[];
};
export {};
//# sourceMappingURL=index.d.ts.map
