import type { ModelOptions } from '../../config/interfaces.js'; import type { ModelConfig } from '../config/model.js'; import { TypeKind } from '../config/type.js'; import type { ValidationResult } from '../validation/result.js'; import type { ModelComponent } from '../validation/validation-context.js'; import { ValidationContext } from '../validation/validation-context.js'; import { BillingEntityType } from './billing.js'; import type { ChildEntityType } from './child-entity-type.js'; import type { EntityExtensionType } from './entity-extension-type.js'; import type { EnumType } from './enum-type.js'; import { ModelI18n } from './i18n.js'; import { ModuleDeclaration } from './modules/module-declaration.js'; import { Namespace } from './namespace.js'; import { PermissionProfile } from './permission-profile.js'; import type { Relation } from './relation.js'; import type { RootEntityType } from './root-entity-type.js'; import type { ScalarType } from './scalar-type.js'; import { TimeToLiveType } from './time-to-live.js'; import type { ObjectType, Type } from './type.js'; import type { ValueObjectType } from './value-object-type.js'; export declare class Model implements ModelComponent { private input; private readonly typeMap; private readonly builtInTypes; readonly rootNamespace: Namespace; readonly namespaces: ReadonlyArray; readonly types: ReadonlyArray; readonly i18n: ModelI18n; readonly permissionProfiles: ReadonlyArray; readonly billingEntityTypes: ReadonlyArray; /** * @deprecated use options */ readonly modelValidationOptions?: ModelOptions; readonly options?: ModelOptions; readonly timeToLiveTypes: ReadonlyArray; readonly modules: ReadonlyArray; constructor(input: ModelConfig); validate(context?: ValidationContext): ValidationResult; private validateDuplicateTypes; private validateDuplicateModules; getType(name: string): Type | undefined; getTypeOrFallback(name: string): Type; getTypeOrThrow(name: string): Type; get rootEntityTypes(): ReadonlyArray; get childEntityTypes(): ReadonlyArray; get entityExtensionTypes(): ReadonlyArray; get valueObjectTypes(): ReadonlyArray; get scalarTypes(): ReadonlyArray; get enumTypes(): ReadonlyArray; getObjectTypeOrThrow(name: string): ObjectType; getRootEntityTypeOrThrow(name: string): RootEntityType; getChildEntityTypeOrThrow(name: string): ChildEntityType; getValueObjectTypeOrThrow(name: string): ValueObjectType; getEntityExtensionTypeOrThrow(name: string): EntityExtensionType; getScalarTypeOrThrow(name: string): ScalarType; getEnumTypeOrThrow(name: string): EnumType; getRootEntityType(name: string): RootEntityType | undefined; getChildEntityType(name: string): ChildEntityType | undefined; getValueObjectType(name: string): ValueObjectType | undefined; getEntityExtensionType(name: string): EntityExtensionType | undefined; getScalarType(name: string): ScalarType | undefined; getEnumType(name: string): EnumType | undefined; getTypeOfKindOrThrow(name: string, kind: TypeKind): T; getTypeOfKind(name: string, kind: TypeKind): T | undefined; getNamespaceByPath(path: ReadonlyArray): Namespace | undefined; getNamespaceByPathOrThrow(path: ReadonlyArray): Namespace; /** * Gets a list of all relations between any */ get relations(): ReadonlyArray; get forbiddenRootEntityNames(): ReadonlyArray; }