/**
 * 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 { FreezeObjectsInput, InitEmptyRepoInput, RemoveNodeAtPathInput, SetDataAtPathInput, SetPropsAndCommitInput, InsertNodeAtPathInput, UpdateNodeAtPathInput, SetAndCommitInput, RequestUploadUrlInput, ConfirmUploadInput, ProvisionBucketInput, FreezeObjectsPayload, InitEmptyRepoPayload, RemoveNodeAtPathPayload, SetDataAtPathPayload, SetPropsAndCommitPayload, InsertNodeAtPathPayload, UpdateNodeAtPathPayload, SetAndCommitPayload, RequestUploadUrlPayload, ConfirmUploadPayload, ProvisionBucketPayload, FreezeObjectsPayloadSelect, InitEmptyRepoPayloadSelect, RemoveNodeAtPathPayloadSelect, SetDataAtPathPayloadSelect, SetPropsAndCommitPayloadSelect, InsertNodeAtPathPayloadSelect, UpdateNodeAtPathPayloadSelect, SetAndCommitPayloadSelect, RequestUploadUrlPayloadSelect, ConfirmUploadPayloadSelect, ProvisionBucketPayloadSelect } from '../input-types';
export interface FreezeObjectsVariables {
    input: FreezeObjectsInput;
}
export interface InitEmptyRepoVariables {
    input: InitEmptyRepoInput;
}
export interface RemoveNodeAtPathVariables {
    input: RemoveNodeAtPathInput;
}
export interface SetDataAtPathVariables {
    input: SetDataAtPathInput;
}
export interface SetPropsAndCommitVariables {
    input: SetPropsAndCommitInput;
}
export interface InsertNodeAtPathVariables {
    input: InsertNodeAtPathInput;
}
export interface UpdateNodeAtPathVariables {
    input: UpdateNodeAtPathInput;
}
export interface SetAndCommitVariables {
    input: SetAndCommitInput;
}
/**
 * Variables for requestUploadUrl
 * Request a presigned URL for uploading a file directly to S3.
Client computes SHA-256 of the file content and provides it here.
If a file with the same hash already exists (dedup), returns the
existing file ID and deduplicated=true with no uploadUrl.
 */
export interface RequestUploadUrlVariables {
    input: RequestUploadUrlInput;
}
/**
 * Variables for confirmUpload
 * Confirm that a file has been uploaded to S3.
Verifies the object exists in S3, checks content-type,
and transitions the file status from 'pending' to 'ready'.
 */
export interface ConfirmUploadVariables {
    input: ConfirmUploadInput;
}
/**
 * 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): {
    freezeObjects: <S extends FreezeObjectsPayloadSelect>(args: FreezeObjectsVariables, options: {
        select: S;
    } & StrictSelect<S, FreezeObjectsPayloadSelect>) => QueryBuilder<{
        freezeObjects: InferSelectResult<FreezeObjectsPayload, S> | null;
    }>;
    initEmptyRepo: <S extends InitEmptyRepoPayloadSelect>(args: InitEmptyRepoVariables, options: {
        select: S;
    } & StrictSelect<S, InitEmptyRepoPayloadSelect>) => QueryBuilder<{
        initEmptyRepo: InferSelectResult<InitEmptyRepoPayload, S> | null;
    }>;
    removeNodeAtPath: <S extends RemoveNodeAtPathPayloadSelect>(args: RemoveNodeAtPathVariables, options: {
        select: S;
    } & StrictSelect<S, RemoveNodeAtPathPayloadSelect>) => QueryBuilder<{
        removeNodeAtPath: InferSelectResult<RemoveNodeAtPathPayload, S> | null;
    }>;
    setDataAtPath: <S extends SetDataAtPathPayloadSelect>(args: SetDataAtPathVariables, options: {
        select: S;
    } & StrictSelect<S, SetDataAtPathPayloadSelect>) => QueryBuilder<{
        setDataAtPath: InferSelectResult<SetDataAtPathPayload, S> | null;
    }>;
    setPropsAndCommit: <S extends SetPropsAndCommitPayloadSelect>(args: SetPropsAndCommitVariables, options: {
        select: S;
    } & StrictSelect<S, SetPropsAndCommitPayloadSelect>) => QueryBuilder<{
        setPropsAndCommit: InferSelectResult<SetPropsAndCommitPayload, S> | null;
    }>;
    insertNodeAtPath: <S extends InsertNodeAtPathPayloadSelect>(args: InsertNodeAtPathVariables, options: {
        select: S;
    } & StrictSelect<S, InsertNodeAtPathPayloadSelect>) => QueryBuilder<{
        insertNodeAtPath: InferSelectResult<InsertNodeAtPathPayload, S> | null;
    }>;
    updateNodeAtPath: <S extends UpdateNodeAtPathPayloadSelect>(args: UpdateNodeAtPathVariables, options: {
        select: S;
    } & StrictSelect<S, UpdateNodeAtPathPayloadSelect>) => QueryBuilder<{
        updateNodeAtPath: InferSelectResult<UpdateNodeAtPathPayload, S> | null;
    }>;
    setAndCommit: <S extends SetAndCommitPayloadSelect>(args: SetAndCommitVariables, options: {
        select: S;
    } & StrictSelect<S, SetAndCommitPayloadSelect>) => QueryBuilder<{
        setAndCommit: InferSelectResult<SetAndCommitPayload, S> | null;
    }>;
    requestUploadUrl: <S extends RequestUploadUrlPayloadSelect>(args: RequestUploadUrlVariables, options: {
        select: S;
    } & StrictSelect<S, RequestUploadUrlPayloadSelect>) => QueryBuilder<{
        requestUploadUrl: InferSelectResult<RequestUploadUrlPayload, S> | null;
    }>;
    confirmUpload: <S extends ConfirmUploadPayloadSelect>(args: ConfirmUploadVariables, options: {
        select: S;
    } & StrictSelect<S, ConfirmUploadPayloadSelect>) => QueryBuilder<{
        confirmUpload: InferSelectResult<ConfirmUploadPayload, S> | null;
    }>;
    provisionBucket: <S extends ProvisionBucketPayloadSelect>(args: ProvisionBucketVariables, options: {
        select: S;
    } & StrictSelect<S, ProvisionBucketPayloadSelect>) => QueryBuilder<{
        provisionBucket: InferSelectResult<ProvisionBucketPayload, S> | null;
    }>;
};
