import type { OrmClientConfig } from './client';
import { CommitModel } from './models/commit';
import { GetAllTreeNodesRecordModel } from './models/getAllTreeNodesRecord';
import { ObjectModel } from './models/object';
import { RefModel } from './models/ref';
import { StoreModel } from './models/store';
export type { OrmClientConfig, QueryResult, GraphQLError, GraphQLAdapter } from './client';
export { GraphQLRequestError, FetchAdapter } from './client';
export { QueryBuilder } from './query-builder';
export * from './select-types';
export * from './models';
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): {
    commit: CommitModel;
    getAllTreeNodesRecord: GetAllTreeNodesRecordModel;
    object: ObjectModel;
    ref: RefModel;
    store: StoreModel;
    mutation: {
        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;
        }>;
        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;
        }>;
        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;
        }>;
        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;
        }>;
    };
};
