/**
 * ORM Client - createClient factory
 * @generated by @constructive-io/graphql-codegen
 * DO NOT EDIT - changes will be overwritten
 */
import { OrmClient } from './client';
import { AppLimitCapsDefaultModel } from './models/appLimitCapsDefault';
import { OrgLimitCapsDefaultModel } from './models/orgLimitCapsDefault';
import { AppLimitCapModel } from './models/appLimitCap';
import { OrgLimitCapModel } from './models/orgLimitCap';
import { AppLimitDefaultModel } from './models/appLimitDefault';
import { AppLimitCreditModel } from './models/appLimitCredit';
import { AppLimitCreditCodeItemModel } from './models/appLimitCreditCodeItem';
import { AppLimitCreditRedemptionModel } from './models/appLimitCreditRedemption';
import { OrgLimitDefaultModel } from './models/orgLimitDefault';
import { OrgLimitCreditModel } from './models/orgLimitCredit';
import { AppLimitWarningModel } from './models/appLimitWarning';
import { OrgLimitWarningModel } from './models/orgLimitWarning';
import { AppLimitCreditCodeModel } from './models/appLimitCreditCode';
import { AppLimitEventModel } from './models/appLimitEvent';
import { OrgLimitEventModel } from './models/orgLimitEvent';
import { AppLimitModel } from './models/appLimit';
import { OrgLimitAggregateModel } from './models/orgLimitAggregate';
import { OrgLimitModel } from './models/orgLimit';
import { createMutationOperations } from './mutation';
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 function createClient(config) {
    const client = new OrmClient(config);
    return {
        appLimitCapsDefault: new AppLimitCapsDefaultModel(client),
        orgLimitCapsDefault: new OrgLimitCapsDefaultModel(client),
        appLimitCap: new AppLimitCapModel(client),
        orgLimitCap: new OrgLimitCapModel(client),
        appLimitDefault: new AppLimitDefaultModel(client),
        appLimitCredit: new AppLimitCreditModel(client),
        appLimitCreditCodeItem: new AppLimitCreditCodeItemModel(client),
        appLimitCreditRedemption: new AppLimitCreditRedemptionModel(client),
        orgLimitDefault: new OrgLimitDefaultModel(client),
        orgLimitCredit: new OrgLimitCreditModel(client),
        appLimitWarning: new AppLimitWarningModel(client),
        orgLimitWarning: new OrgLimitWarningModel(client),
        appLimitCreditCode: new AppLimitCreditCodeModel(client),
        appLimitEvent: new AppLimitEventModel(client),
        orgLimitEvent: new OrgLimitEventModel(client),
        appLimit: new AppLimitModel(client),
        orgLimitAggregate: new OrgLimitAggregateModel(client),
        orgLimit: new OrgLimitModel(client),
        mutation: createMutationOperations(client),
    };
}
