import { ModelOptions } from '../../config/interfaces'; import { ModelConfig, TypeKind } from '../config'; import { ValidationResult } from '../validation'; import { ModelComponent, ValidationContext } from '../validation/validation-context'; import { BillingEntityType } from './billing'; import { ChildEntityType } from './child-entity-type'; import { EntityExtensionType } from './entity-extension-type'; import { EnumType } from './enum-type'; import { ModelI18n } from './i18n'; import { Namespace } from './namespace'; import { PermissionProfile } from './permission-profile'; import { Relation } from './relation'; import { RootEntityType } from './root-entity-type'; import { ScalarType } from './scalar-type'; import { TimeToLiveType } from './time-to-live'; import { ObjectType, Type } from './type'; import { ValueObjectType } from './value-object-type'; import { ModuleDeclaration } from './modules/module-declaration'; 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; }