/**
 * Custom mutation operations
 * @generated by @constructive-io/graphql-codegen
 * DO NOT EDIT - changes will be overwritten
 */
import { OrmClient } from '../client';
import { QueryBuilder } from '../query-builder';
import type { InferSelectResult, StrictSelect } from '../select-types';
import type { AcceptDatabaseTransferInput, ApplyRlsInput, CancelDatabaseTransferInput, ProvisionBucketInput, RejectDatabaseTransferInput, RequestDatabaseInput, SetFieldOrderInput, AcceptDatabaseTransferPayload, ApplyRlsPayload, CancelDatabaseTransferPayload, ProvisionBucketPayload, RejectDatabaseTransferPayload, RequestDatabasePayload, SetFieldOrderPayload, AcceptDatabaseTransferPayloadSelect, ApplyRlsPayloadSelect, CancelDatabaseTransferPayloadSelect, ProvisionBucketPayloadSelect, RejectDatabaseTransferPayloadSelect, RequestDatabasePayloadSelect, SetFieldOrderPayloadSelect } from '../input-types';
export interface AcceptDatabaseTransferVariables {
    input: AcceptDatabaseTransferInput;
}
export interface ApplyRlsVariables {
    input: ApplyRlsInput;
}
export interface CancelDatabaseTransferVariables {
    input: CancelDatabaseTransferInput;
}
/**
 * Variables for provisionBucket
 * Provision an S3 bucket for a logical bucket in the database.
Reads the bucket config via RLS, then creates and configures
the S3 bucket with the appropriate privacy policies, CORS rules,
and lifecycle settings.
 */
export interface ProvisionBucketVariables {
    input: ProvisionBucketInput;
}
export interface RejectDatabaseTransferVariables {
    input: RejectDatabaseTransferInput;
}
/**
 * Variables for requestDatabase
 * Requests a database and returns a ticket (database_provision_module row) to poll.

Pass exactly one of preset_slug or modules. The pool, presets, and owner bootstrap are private implementation details: a warm pool hit fulfills the ticket immediately (fulfilled_at set, deferred owner bootstrap), otherwise the database is cold-provisioned with exactly the requested modules. Poll the ticket until status = 'completed'; it then carries database_id and fulfilled_at.

Example usage:
  SELECT * FROM metaschema_public.request_database('my_app', 'example.com', preset_slug := 'full');
  SELECT * FROM metaschema_public.request_database('my_app', 'example.com', modules := '["users_module", "emails_module"]'::jsonb);
 */
export interface RequestDatabaseVariables {
    input: RequestDatabaseInput;
}
export interface SetFieldOrderVariables {
    input: SetFieldOrderInput;
}
export declare function createMutationOperations(client: OrmClient): {
    acceptDatabaseTransfer: <S extends AcceptDatabaseTransferPayloadSelect>(args: AcceptDatabaseTransferVariables, options: {
        select: S;
    } & StrictSelect<S, AcceptDatabaseTransferPayloadSelect>) => QueryBuilder<{
        acceptDatabaseTransfer: InferSelectResult<AcceptDatabaseTransferPayload, S> | null;
    }>;
    applyRls: <S extends ApplyRlsPayloadSelect>(args: ApplyRlsVariables, options: {
        select: S;
    } & StrictSelect<S, ApplyRlsPayloadSelect>) => QueryBuilder<{
        applyRls: InferSelectResult<ApplyRlsPayload, S> | null;
    }>;
    cancelDatabaseTransfer: <S extends CancelDatabaseTransferPayloadSelect>(args: CancelDatabaseTransferVariables, options: {
        select: S;
    } & StrictSelect<S, CancelDatabaseTransferPayloadSelect>) => QueryBuilder<{
        cancelDatabaseTransfer: InferSelectResult<CancelDatabaseTransferPayload, S> | null;
    }>;
    provisionBucket: <S extends ProvisionBucketPayloadSelect>(args: ProvisionBucketVariables, options: {
        select: S;
    } & StrictSelect<S, ProvisionBucketPayloadSelect>) => QueryBuilder<{
        provisionBucket: InferSelectResult<ProvisionBucketPayload, S> | null;
    }>;
    rejectDatabaseTransfer: <S extends RejectDatabaseTransferPayloadSelect>(args: RejectDatabaseTransferVariables, options: {
        select: S;
    } & StrictSelect<S, RejectDatabaseTransferPayloadSelect>) => QueryBuilder<{
        rejectDatabaseTransfer: InferSelectResult<RejectDatabaseTransferPayload, S> | null;
    }>;
    requestDatabase: <S extends RequestDatabasePayloadSelect>(args: RequestDatabaseVariables, options: {
        select: S;
    } & StrictSelect<S, RequestDatabasePayloadSelect>) => QueryBuilder<{
        requestDatabase: InferSelectResult<RequestDatabasePayload, S> | null;
    }>;
    setFieldOrder: <S extends SetFieldOrderPayloadSelect>(args: SetFieldOrderVariables, options: {
        select: S;
    } & StrictSelect<S, SetFieldOrderPayloadSelect>) => QueryBuilder<{
        setFieldOrder: InferSelectResult<SetFieldOrderPayload, S> | null;
    }>;
};
