import type { BaseQueryApi } from '@reduxjs/toolkit/query';
import type { GraphQLClient, RequestOptions, RequestDocument, ClientError } from 'graphql-request';
export type Document = RequestDocument;
export type RequestHeaders = RequestOptions['requestHeaders'];
export type PrepareHeaders = (headers: Headers, api: Pick<BaseQueryApi, 'getState' | 'endpoint' | 'type' | 'forced' | 'extra'>) => MaybePromise<Headers>;
export type ErrorResponse = {
    message: string;
    stack: string;
    name: string;
};
export type GraphqlRequestBaseQueryArgs<E = ErrorResponse> = ({
    url: string;
} | {
    client: GraphQLClient;
}) & {
    requestHeaders?: RequestHeaders;
    prepareHeaders?: PrepareHeaders;
    customErrors?: (args: ClientError) => E;
};
export type QueryReturnValue<T = unknown, E = unknown, M = unknown> = {
    error: E;
    data?: undefined;
    meta?: M;
} | {
    error?: undefined;
    data: T;
    meta?: M;
};
export type MaybePromise<T> = T | PromiseLike<T>;
