import type { FetchMoreQueryOptions, MaybeMasked, ObservableQuery, OperationVariables, QueryResult, Unmasked } from "@apollo/client";
import type { OnlyRequiredProperties } from "@apollo/client/utilities";
export type VariablesOption<TVariables extends OperationVariables> = [
    TVariables
] extends [never] ? {
    /**
    * An object containing all of the GraphQL variables your query requires to execute.
    * 
    * Each key in the object corresponds to a variable name, and that key's value corresponds to the variable value.
    * 
    * @docGroup
    * 
    * 1. Operation options
    */
    variables?: Record<string, never>;
} : Record<string, never> extends OnlyRequiredProperties<TVariables> ? {
    /**
    * An object containing all of the GraphQL variables your query requires to execute.
    * 
    * Each key in the object corresponds to a variable name, and that key's value corresponds to the variable value.
    * 
    * @docGroup
    * 
    * 1. Operation options
    */
    variables?: TVariables;
} : {
    /**
    * An object containing all of the GraphQL variables your query requires to execute.
    * 
    * Each key in the object corresponds to a variable name, and that key's value corresponds to the variable value.
    * 
    * @docGroup
    * 
    * 1. Operation options
    */
    variables: TVariables;
};
export type RefetchFunction<TData, TVariables extends OperationVariables> = ObservableQuery<TData, TVariables>["refetch"];
export type FetchMoreFunction<TData, TVariables extends OperationVariables> = (fetchMoreOptions: FetchMoreQueryOptions<TVariables, TData> & {
    updateQuery?: (previousQueryResult: Unmasked<TData>, options: {
        fetchMoreResult: Unmasked<TData>;
        variables: TVariables;
    }) => Unmasked<TData>;
}) => Promise<QueryResult<MaybeMasked<TData>>>;
//# sourceMappingURL=types.d.ts.map
