/**
 * 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, CancelDatabaseTransferInput, RejectDatabaseTransferInput, ProvisionDatabaseWithUserInput, BootstrapUserInput, SetFieldOrderInput, ApplyRlsInput, CreateUserDatabaseInput, ProvisionBucketInput, AcceptDatabaseTransferPayload, CancelDatabaseTransferPayload, RejectDatabaseTransferPayload, ProvisionDatabaseWithUserPayload, BootstrapUserPayload, SetFieldOrderPayload, ApplyRlsPayload, CreateUserDatabasePayload, ProvisionBucketPayload, AcceptDatabaseTransferPayloadSelect, CancelDatabaseTransferPayloadSelect, RejectDatabaseTransferPayloadSelect, ProvisionDatabaseWithUserPayloadSelect, BootstrapUserPayloadSelect, SetFieldOrderPayloadSelect, ApplyRlsPayloadSelect, CreateUserDatabasePayloadSelect, ProvisionBucketPayloadSelect } from '../input-types';
export interface AcceptDatabaseTransferVariables {
    input: AcceptDatabaseTransferInput;
}
export interface CancelDatabaseTransferVariables {
    input: CancelDatabaseTransferInput;
}
export interface RejectDatabaseTransferVariables {
    input: RejectDatabaseTransferInput;
}
export interface ProvisionDatabaseWithUserVariables {
    input: ProvisionDatabaseWithUserInput;
}
export interface BootstrapUserVariables {
    input: BootstrapUserInput;
}
export interface SetFieldOrderVariables {
    input: SetFieldOrderInput;
}
export interface ApplyRlsVariables {
    input: ApplyRlsInput;
}
/**
 * Variables for createUserDatabase
 * Creates a new user database with all required modules, permissions, and RLS policies.

Parameters:
  - database_name: Name for the new database (required)
  - owner_id: UUID of the owner user (required)
  - include_invites: Include invite system (default: true)
  - include_groups: Include group-level memberships (default: false)
  - include_levels: Include events/analytics (default: false)
  - bitlen: Bit length for permission masks (default: 64)
  - tokens_expiration: Token expiration interval (default: 30 days)

Returns the database_id UUID of the newly created database.

Example usage:
  SELECT metaschema_public.create_user_database('my_app', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid);
  SELECT metaschema_public.create_user_database('my_app', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid, true, true);  -- with invites and groups
 */
export interface CreateUserDatabaseVariables {
    input: CreateUserDatabaseInput;
}
/**
 * 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 declare function createMutationOperations(client: OrmClient): {
    acceptDatabaseTransfer: <S extends AcceptDatabaseTransferPayloadSelect>(args: AcceptDatabaseTransferVariables, options: {
        select: S;
    } & StrictSelect<S, AcceptDatabaseTransferPayloadSelect>) => QueryBuilder<{
        acceptDatabaseTransfer: InferSelectResult<AcceptDatabaseTransferPayload, S> | null;
    }>;
    cancelDatabaseTransfer: <S extends CancelDatabaseTransferPayloadSelect>(args: CancelDatabaseTransferVariables, options: {
        select: S;
    } & StrictSelect<S, CancelDatabaseTransferPayloadSelect>) => QueryBuilder<{
        cancelDatabaseTransfer: InferSelectResult<CancelDatabaseTransferPayload, S> | null;
    }>;
    rejectDatabaseTransfer: <S extends RejectDatabaseTransferPayloadSelect>(args: RejectDatabaseTransferVariables, options: {
        select: S;
    } & StrictSelect<S, RejectDatabaseTransferPayloadSelect>) => QueryBuilder<{
        rejectDatabaseTransfer: InferSelectResult<RejectDatabaseTransferPayload, S> | null;
    }>;
    provisionDatabaseWithUser: <S extends ProvisionDatabaseWithUserPayloadSelect>(args: ProvisionDatabaseWithUserVariables, options: {
        select: S;
    } & StrictSelect<S, ProvisionDatabaseWithUserPayloadSelect>) => QueryBuilder<{
        provisionDatabaseWithUser: InferSelectResult<ProvisionDatabaseWithUserPayload, S> | null;
    }>;
    bootstrapUser: <S extends BootstrapUserPayloadSelect>(args: BootstrapUserVariables, options: {
        select: S;
    } & StrictSelect<S, BootstrapUserPayloadSelect>) => QueryBuilder<{
        bootstrapUser: InferSelectResult<BootstrapUserPayload, S> | null;
    }>;
    setFieldOrder: <S extends SetFieldOrderPayloadSelect>(args: SetFieldOrderVariables, options: {
        select: S;
    } & StrictSelect<S, SetFieldOrderPayloadSelect>) => QueryBuilder<{
        setFieldOrder: InferSelectResult<SetFieldOrderPayload, S> | null;
    }>;
    applyRls: <S extends ApplyRlsPayloadSelect>(args: ApplyRlsVariables, options: {
        select: S;
    } & StrictSelect<S, ApplyRlsPayloadSelect>) => QueryBuilder<{
        applyRls: InferSelectResult<ApplyRlsPayload, S> | null;
    }>;
    createUserDatabase: <S extends CreateUserDatabasePayloadSelect>(args: CreateUserDatabaseVariables, options: {
        select: S;
    } & StrictSelect<S, CreateUserDatabasePayloadSelect>) => QueryBuilder<{
        createUserDatabase: InferSelectResult<CreateUserDatabasePayload, S> | null;
    }>;
    provisionBucket: <S extends ProvisionBucketPayloadSelect>(args: ProvisionBucketVariables, options: {
        select: S;
    } & StrictSelect<S, ProvisionBucketPayloadSelect>) => QueryBuilder<{
        provisionBucket: InferSelectResult<ProvisionBucketPayload, S> | null;
    }>;
};
