/**
 * ORM Client - createClient factory
 * @generated by @constructive-io/graphql-codegen
 * DO NOT EDIT - changes will be overwritten
 */
import { OrmClient } from './client';
import { InfraGetAllRecordModel } from './models/infraGetAllRecord';
import { GetAllRecordModel } from './models/getAllRecord';
import { InfraRefModel } from './models/infraRef';
import { InfraStoreModel } from './models/infraStore';
import { FunctionApiBindingModel } from './models/functionApiBinding';
import { FunctionGraphRefModel } from './models/functionGraphRef';
import { FunctionGraphStoreModel } from './models/functionGraphStore';
import { PlatformFunctionApiBindingModel } from './models/platformFunctionApiBinding';
import { PlatformResourcesRequirementsStateModel } from './models/platformResourcesRequirementsState';
import { ResourcesRequirementsStateModel } from './models/resourcesRequirementsState';
import { PlatformResourceStatusCheckModel } from './models/platformResourceStatusCheck';
import { PlatformFunctionDeploymentModel } from './models/platformFunctionDeployment';
import { PlatformResourceModel } from './models/platformResource';
import { PlatformResourceDefinitionModel } from './models/platformResourceDefinition';
import { InfraObjectModel } from './models/infraObject';
import { FunctionGraphObjectModel } from './models/functionGraphObject';
import { PlatformFunctionDeploymentEventModel } from './models/platformFunctionDeploymentEvent';
import { PlatformResourceEventModel } from './models/platformResourceEvent';
import { ResourceStatusCheckModel } from './models/resourceStatusCheck';
import { FunctionDeploymentModel } from './models/functionDeployment';
import { ResourceModel } from './models/resource';
import { ResourceDefinitionModel } from './models/resourceDefinition';
import { FunctionDeploymentEventModel } from './models/functionDeploymentEvent';
import { PlatformFunctionExecutionLogModel } from './models/platformFunctionExecutionLog';
import { ResourceEventModel } from './models/resourceEvent';
import { FunctionGraphExecutionOutputModel } from './models/functionGraphExecutionOutput';
import { InfraCommitModel } from './models/infraCommit';
import { FunctionGraphCommitModel } from './models/functionGraphCommit';
import { FunctionExecutionLogModel } from './models/functionExecutionLog';
import { PlatformResourcesResolvedRequirementModel } from './models/platformResourcesResolvedRequirement';
import { ResourcesResolvedRequirementModel } from './models/resourcesResolvedRequirement';
import { DbPresetModel } from './models/dbPreset';
import { PlatformNamespaceModel } from './models/platformNamespace';
import { FunctionGraphModel } from './models/functionGraph';
import { FunctionGraphExecutionNodeStateModel } from './models/functionGraphExecutionNodeState';
import { NamespaceModel } from './models/namespace';
import { PlatformFunctionInvocationModel } from './models/platformFunctionInvocation';
import { FunctionInvocationModel } from './models/functionInvocation';
import { PlatformNamespaceEventModel } from './models/platformNamespaceEvent';
import { IntegrationProviderModel } from './models/integrationProvider';
import { NamespaceEventModel } from './models/namespaceEvent';
import { FunctionGraphExecutionModel } from './models/functionGraphExecution';
import { PlatformFunctionDefinitionModel } from './models/platformFunctionDefinition';
import { FunctionDefinitionModel } from './models/functionDefinition';
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 {
        infraGetAllRecord: new InfraGetAllRecordModel(client),
        getAllRecord: new GetAllRecordModel(client),
        infraRef: new InfraRefModel(client),
        infraStore: new InfraStoreModel(client),
        functionApiBinding: new FunctionApiBindingModel(client),
        functionGraphRef: new FunctionGraphRefModel(client),
        functionGraphStore: new FunctionGraphStoreModel(client),
        platformFunctionApiBinding: new PlatformFunctionApiBindingModel(client),
        platformResourcesRequirementsState: new PlatformResourcesRequirementsStateModel(client),
        resourcesRequirementsState: new ResourcesRequirementsStateModel(client),
        platformResourceStatusCheck: new PlatformResourceStatusCheckModel(client),
        platformFunctionDeployment: new PlatformFunctionDeploymentModel(client),
        platformResource: new PlatformResourceModel(client),
        platformResourceDefinition: new PlatformResourceDefinitionModel(client),
        infraObject: new InfraObjectModel(client),
        functionGraphObject: new FunctionGraphObjectModel(client),
        platformFunctionDeploymentEvent: new PlatformFunctionDeploymentEventModel(client),
        platformResourceEvent: new PlatformResourceEventModel(client),
        resourceStatusCheck: new ResourceStatusCheckModel(client),
        functionDeployment: new FunctionDeploymentModel(client),
        resource: new ResourceModel(client),
        resourceDefinition: new ResourceDefinitionModel(client),
        functionDeploymentEvent: new FunctionDeploymentEventModel(client),
        platformFunctionExecutionLog: new PlatformFunctionExecutionLogModel(client),
        resourceEvent: new ResourceEventModel(client),
        functionGraphExecutionOutput: new FunctionGraphExecutionOutputModel(client),
        infraCommit: new InfraCommitModel(client),
        functionGraphCommit: new FunctionGraphCommitModel(client),
        functionExecutionLog: new FunctionExecutionLogModel(client),
        platformResourcesResolvedRequirement: new PlatformResourcesResolvedRequirementModel(client),
        resourcesResolvedRequirement: new ResourcesResolvedRequirementModel(client),
        dbPreset: new DbPresetModel(client),
        platformNamespace: new PlatformNamespaceModel(client),
        functionGraph: new FunctionGraphModel(client),
        functionGraphExecutionNodeState: new FunctionGraphExecutionNodeStateModel(client),
        namespace: new NamespaceModel(client),
        platformFunctionInvocation: new PlatformFunctionInvocationModel(client),
        functionInvocation: new FunctionInvocationModel(client),
        platformNamespaceEvent: new PlatformNamespaceEventModel(client),
        integrationProvider: new IntegrationProviderModel(client),
        namespaceEvent: new NamespaceEventModel(client),
        functionGraphExecution: new FunctionGraphExecutionModel(client),
        platformFunctionDefinition: new PlatformFunctionDefinitionModel(client),
        functionDefinition: new FunctionDefinitionModel(client),
        query: createQueryOperations(client),
        mutation: createMutationOperations(client),
    };
}
