import { ModelComponent, ValidationContext } from '../validation/validation-context'; import { PermissionProfile } from './permission-profile'; import { RootEntityType } from './root-entity-type'; import { Type } from './type'; export declare class Namespace implements ModelComponent { readonly types: ReadonlyArray; private readonly typeMap; private readonly childNamespaceMap; readonly childNamespaces: ReadonlyArray; readonly descendantNamespaces: ReadonlyArray; allTypes: ReadonlyArray; readonly path: ReadonlyArray; readonly parent: Namespace | undefined; readonly permissionProfiles: ReadonlyArray; constructor(config: { parent?: Namespace; path: ReadonlyArray; allTypes: ReadonlyArray; allPermissionProfiles: ReadonlyArray; }); get dotSeparatedPath(): string; get pascalCasePath(): string; get name(): string | undefined; getChildNamespace(name: string): Namespace | undefined; getChildNamespaceOrThrow(name: string): Namespace; get allRootEntityTypes(): ReadonlyArray; get rootEntityTypes(): ReadonlyArray; getType(name: string): Type | undefined; getTypeOrThrow(name: string): Type; getRootEntityType(name: string): RootEntityType | undefined; getRootEntityTypeOrThrow(name: string): RootEntityType; get isRoot(): boolean; private extractNextSegment; private getTypesOfSegment; get defaultPermissionProfile(): PermissionProfile | undefined; private isSuperNamespace; private pathEquals; private get permissionProfileMap(); getPermissionProfile(name: string): PermissionProfile | undefined; getPermissionProfileOrThrow(name: string): PermissionProfile; getAvailablePermissionProfiles(): PermissionProfile[]; validate(context: ValidationContext): void; }