import type { OrmClientConfig } from './client';
import { GetAllRecordModel } from './models/getAllRecord';
import { ObjectModel } from './models/object';
import { RefModel } from './models/ref';
import { StoreModel } from './models/store';
import { CommitModel } from './models/commit';
export type { OrmClientConfig, QueryResult, GraphQLError, GraphQLAdapter } from './client';
export { GraphQLRequestError } from './client';
export { QueryBuilder } from './query-builder';
export * from './select-types';
export * from './models';
export { createQueryOperations } from './query';
export { createMutationOperations } from './mutation';
/**
 * Create an ORM client instance
 *
 * @example
 * ```typescript
 * const db = createClient({
 *   endpoint: 'https://api.example.com/graphql',
 *   headers: { Authorization: 'Bearer token' },
 * });
 *
 * // Query users
 * const users = await db.user.findMany({
 *   select: { id: true, name: true },
 *   first: 10,
 * }).execute();
 *
 * // Create a user
 * const newUser = await db.user.create({
 *   data: { name: 'John', email: 'john@example.com' },
 *   select: { id: true },
 * }).execute();
 * ```
 */
export declare function createClient(config: OrmClientConfig): {
    getAllRecord: GetAllRecordModel;
    object: ObjectModel;
    ref: RefModel;
    store: StoreModel;
    commit: CommitModel;
    query: {
        revParse: (args: import("./query").RevParseVariables, options?: {
            select?: Record<string, unknown>;
        }) => import("./query-builder").QueryBuilder<{
            revParse: string | null;
        }>;
        getAllObjectsFromRoot: (args: import("./query").GetAllObjectsFromRootVariables, options?: {
            select?: Record<string, unknown>;
        }) => import("./query-builder").QueryBuilder<{
            getAllObjectsFromRoot: import("./input-types").ObjectConnection | null;
        }>;
        getPathObjectsFromRoot: (args: import("./query").GetPathObjectsFromRootVariables, options?: {
            select?: Record<string, unknown>;
        }) => import("./query-builder").QueryBuilder<{
            getPathObjectsFromRoot: import("./input-types").ObjectConnection | null;
        }>;
        getObjectAtPath: <S extends import("./input-types").ObjectSelect>(args: import("./query").GetObjectAtPathVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ObjectSelect>) => import("./query-builder").QueryBuilder<{
            getObjectAtPath: import("./select-types").InferSelectResult<import("./input-types").Object, S> | null;
        }>;
    };
    mutation: {
        freezeObjects: <S extends import("./input-types").FreezeObjectsPayloadSelect>(args: import("./mutation").FreezeObjectsVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").FreezeObjectsPayloadSelect>) => import("./query-builder").QueryBuilder<{
            freezeObjects: import("./select-types").InferSelectResult<import("./input-types").FreezeObjectsPayload, S> | null;
        }>;
        initEmptyRepo: <S extends import("./input-types").InitEmptyRepoPayloadSelect>(args: import("./mutation").InitEmptyRepoVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").InitEmptyRepoPayloadSelect>) => import("./query-builder").QueryBuilder<{
            initEmptyRepo: import("./select-types").InferSelectResult<import("./input-types").InitEmptyRepoPayload, S> | null;
        }>;
        removeNodeAtPath: <S extends import("./input-types").RemoveNodeAtPathPayloadSelect>(args: import("./mutation").RemoveNodeAtPathVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").RemoveNodeAtPathPayloadSelect>) => import("./query-builder").QueryBuilder<{
            removeNodeAtPath: import("./select-types").InferSelectResult<import("./input-types").RemoveNodeAtPathPayload, S> | null;
        }>;
        setDataAtPath: <S extends import("./input-types").SetDataAtPathPayloadSelect>(args: import("./mutation").SetDataAtPathVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SetDataAtPathPayloadSelect>) => import("./query-builder").QueryBuilder<{
            setDataAtPath: import("./select-types").InferSelectResult<import("./input-types").SetDataAtPathPayload, S> | null;
        }>;
        setPropsAndCommit: <S extends import("./input-types").SetPropsAndCommitPayloadSelect>(args: import("./mutation").SetPropsAndCommitVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SetPropsAndCommitPayloadSelect>) => import("./query-builder").QueryBuilder<{
            setPropsAndCommit: import("./select-types").InferSelectResult<import("./input-types").SetPropsAndCommitPayload, S> | null;
        }>;
        insertNodeAtPath: <S extends import("./input-types").InsertNodeAtPathPayloadSelect>(args: import("./mutation").InsertNodeAtPathVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").InsertNodeAtPathPayloadSelect>) => import("./query-builder").QueryBuilder<{
            insertNodeAtPath: import("./select-types").InferSelectResult<import("./input-types").InsertNodeAtPathPayload, S> | null;
        }>;
        updateNodeAtPath: <S extends import("./input-types").UpdateNodeAtPathPayloadSelect>(args: import("./mutation").UpdateNodeAtPathVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").UpdateNodeAtPathPayloadSelect>) => import("./query-builder").QueryBuilder<{
            updateNodeAtPath: import("./select-types").InferSelectResult<import("./input-types").UpdateNodeAtPathPayload, S> | null;
        }>;
        setAndCommit: <S extends import("./input-types").SetAndCommitPayloadSelect>(args: import("./mutation").SetAndCommitVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SetAndCommitPayloadSelect>) => import("./query-builder").QueryBuilder<{
            setAndCommit: import("./select-types").InferSelectResult<import("./input-types").SetAndCommitPayload, S> | null;
        }>;
        provisionBucket: <S extends import("./input-types").ProvisionBucketPayloadSelect>(args: import("./mutation").ProvisionBucketVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ProvisionBucketPayloadSelect>) => import("./query-builder").QueryBuilder<{
            provisionBucket: import("./select-types").InferSelectResult<import("./input-types").ProvisionBucketPayload, S> | null;
        }>;
    };
};
