/**
 * ORM Client - createClient factory
 * @generated by @constructive-io/graphql-codegen
 * DO NOT EDIT - changes will be overwritten
 */
import { OrmClient } from './client';
import { ApiModel } from './models/api';
import { ApiModuleModel } from './models/apiModule';
import { ApiSchemaModel } from './models/apiSchema';
import { ApiSettingModel } from './models/apiSetting';
import { AppModel } from './models/app';
import { AstMigrationModel } from './models/astMigration';
import { CheckConstraintModel } from './models/checkConstraint';
import { CompositeTypeModel } from './models/compositeType';
import { CorsSettingModel } from './models/corsSetting';
import { DatabaseModel } from './models/database';
import { DatabaseSettingModel } from './models/databaseSetting';
import { DatabaseTransferModel } from './models/databaseTransfer';
import { DefaultPrivilegeModel } from './models/defaultPrivilege';
import { DomainModel } from './models/domain';
import { EmbeddingChunkModel } from './models/embeddingChunk';
import { EnumModel } from './models/enum';
import { FieldModel } from './models/field';
import { ForeignKeyConstraintModel } from './models/foreignKeyConstraint';
import { FullTextSearchModel } from './models/fullTextSearch';
import { FunctionModel } from './models/function';
import { HttpRouteModel } from './models/httpRoute';
import { IndexModel } from './models/index';
import { ManagedDomainModel } from './models/managedDomain';
import { NodeTypeRegistryModel } from './models/nodeTypeRegistry';
import { PartitionModel } from './models/partition';
import { PolicyModel } from './models/policy';
import { PrimaryKeyConstraintModel } from './models/primaryKeyConstraint';
import { PubkeySettingModel } from './models/pubkeySetting';
import { RlsSettingModel } from './models/rlsSetting';
import { SchemaModel } from './models/schema';
import { SchemaGrantModel } from './models/schemaGrant';
import { SiteModel } from './models/site';
import { SiteMetadatumModel } from './models/siteMetadatum';
import { SiteModuleModel } from './models/siteModule';
import { SiteThemeModel } from './models/siteTheme';
import { SpatialRelationModel } from './models/spatialRelation';
import { SqlActionModel } from './models/sqlAction';
import { TableModel } from './models/table';
import { TableGrantModel } from './models/tableGrant';
import { TriggerModel } from './models/trigger';
import { TriggerFunctionModel } from './models/triggerFunction';
import { UniqueConstraintModel } from './models/uniqueConstraint';
import { ViewModel } from './models/view';
import { ViewGrantModel } from './models/viewGrant';
import { ViewRuleModel } from './models/viewRule';
import { ViewTableModel } from './models/viewTable';
import { WebauthnSettingModel } from './models/webauthnSetting';
import { createQueryOperations } from './query';
import { createMutationOperations } from './mutation';
export { GraphQLRequestError, FetchAdapter } 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 function createClient(config) {
    const client = new OrmClient(config);
    return {
        api: new ApiModel(client),
        apiModule: new ApiModuleModel(client),
        apiSchema: new ApiSchemaModel(client),
        apiSetting: new ApiSettingModel(client),
        app: new AppModel(client),
        astMigration: new AstMigrationModel(client),
        checkConstraint: new CheckConstraintModel(client),
        compositeType: new CompositeTypeModel(client),
        corsSetting: new CorsSettingModel(client),
        database: new DatabaseModel(client),
        databaseSetting: new DatabaseSettingModel(client),
        databaseTransfer: new DatabaseTransferModel(client),
        defaultPrivilege: new DefaultPrivilegeModel(client),
        domain: new DomainModel(client),
        embeddingChunk: new EmbeddingChunkModel(client),
        enum: new EnumModel(client),
        field: new FieldModel(client),
        foreignKeyConstraint: new ForeignKeyConstraintModel(client),
        fullTextSearch: new FullTextSearchModel(client),
        function: new FunctionModel(client),
        httpRoute: new HttpRouteModel(client),
        index: new IndexModel(client),
        managedDomain: new ManagedDomainModel(client),
        nodeTypeRegistry: new NodeTypeRegistryModel(client),
        partition: new PartitionModel(client),
        policy: new PolicyModel(client),
        primaryKeyConstraint: new PrimaryKeyConstraintModel(client),
        pubkeySetting: new PubkeySettingModel(client),
        rlsSetting: new RlsSettingModel(client),
        schema: new SchemaModel(client),
        schemaGrant: new SchemaGrantModel(client),
        site: new SiteModel(client),
        siteMetadatum: new SiteMetadatumModel(client),
        siteModule: new SiteModuleModel(client),
        siteTheme: new SiteThemeModel(client),
        spatialRelation: new SpatialRelationModel(client),
        sqlAction: new SqlActionModel(client),
        table: new TableModel(client),
        tableGrant: new TableGrantModel(client),
        trigger: new TriggerModel(client),
        triggerFunction: new TriggerFunctionModel(client),
        uniqueConstraint: new UniqueConstraintModel(client),
        view: new ViewModel(client),
        viewGrant: new ViewGrantModel(client),
        viewRule: new ViewRuleModel(client),
        viewTable: new ViewTableModel(client),
        webauthnSetting: new WebauthnSettingModel(client),
        query: createQueryOperations(client),
        mutation: createMutationOperations(client),
    };
}
