import { GraphQlClientRequestOptions } from '@contember/react-client';
import { GQLVariableType, GQLVariableValues } from './variables';
export type TenantMutationExecutorOptions = {
    onResponse?: (response: any) => void;
} & Omit<GraphQlClientRequestOptions, 'variables'>;
export type TenantMutationExecutor<VariableValues, Res extends TenantMutationResponse<any, string>> = (variables: VariableValues, option?: TenantMutationExecutorOptions) => Promise<Res>;
export declare const useSingleTenantMutation: <Result, ErrorCode extends string, Variables extends Record<string, GQLVariableType<any, any>>>(mutation: string, variableDefinitions: Variables, options?: Omit<GraphQlClientRequestOptions, 'variables'>) => TenantMutationExecutor<GQLVariableValues<Variables>, TenantMutationResponse<Result, ErrorCode>>;
export interface TenantMutationErrorResponse<Code extends string> {
    ok: false;
    error: {
        code: Code;
        developerMessage: string;
    };
}
export interface TenantMutationOkResponse<Result> {
    ok: true;
    result: Result;
}
export type TenantMutationResponse<Result, ErrorCode extends string> = TenantMutationErrorResponse<ErrorCode> | TenantMutationOkResponse<Result>;
//# sourceMappingURL=useSingleTenantMutation.d.ts.map