import type { GraphQLError } from 'graphql';
import type { Config } from '@tinacms/schema-tools';
export declare const TINA_HOST = "content.tinajs.io";
export interface TinaClientArgs<GenQueries = Record<string, unknown>> {
    url: string;
    token?: string;
    queries: (client: TinaClient<GenQueries>) => GenQueries;
    errorPolicy?: Config['client']['errorPolicy'];
}
export declare type TinaClientRequestArgs = {
    variables?: Record<string, any>;
    query: string;
    errorPolicy?: 'throw' | 'include';
} & Partial<Omit<TinaClientArgs, 'queries'>>;
export declare type TinaClientURLParts = {
    host: string;
    clientId: string;
    branch: string;
    isLocalClient: boolean;
};
export declare class TinaClient<GenQueries> {
    apiUrl: string;
    readonlyToken?: string;
    queries: GenQueries;
    errorPolicy: Config['client']['errorPolicy'];
    constructor({ token, url, queries, errorPolicy, }: TinaClientArgs<GenQueries>);
    request<DataType extends Record<string, any> = any>({ errorPolicy, ...args }: TinaClientRequestArgs, options: {
        fetchOptions?: Parameters<typeof fetch>[1];
    }): Promise<{
        data: DataType;
        errors: GraphQLError[];
        query: string;
    }>;
}
export declare function createClient<GenQueries>(args: TinaClientArgs<GenQueries>): TinaClient<GenQueries>;
