import { ArgumentNode } from 'graphql'; import { FlexSearchPerformanceParams, IndexDefinitionConfig, RootEntityTypeConfig, TypeKind } from '../config'; import { ValidationContext } from '../validation'; import { Field } from './field'; import { FlexSearchPrimarySortClause } from './flex-search'; import { Index } from './indices'; import { Model } from './model'; import { ObjectTypeBase } from './object-type-base'; import { PermissionProfile } from './permission-profile'; import { Relation, RelationSide } from './relation'; import { RolesSpecifier } from './roles-specifier'; import { ScalarType } from './scalar-type'; import { TimeToLiveType } from './time-to-live'; import { EffectiveModuleSpecification } from './modules/effective-module-specification'; export declare class RootEntityType extends ObjectTypeBase { private readonly input; private readonly permissions; readonly roles: RolesSpecifier | undefined; readonly kind: TypeKind.ROOT_ENTITY; readonly isChildEntityType: false; readonly isRootEntityType: true; readonly isEntityExtensionType: false; readonly isValueObjectType: false; readonly isBusinessObject: boolean; readonly isFlexSearchIndexed: boolean; readonly isFlexSearchIndexedAstNode: ArgumentNode | undefined; readonly flexSearchPrimarySort: ReadonlyArray; readonly flexSearchPrimarySortAstNode: ArgumentNode | undefined; readonly flexSearchPerformanceParams: FlexSearchPerformanceParams; readonly indexConfigs: ReadonlyArray; constructor(input: RootEntityTypeConfig, model: Model); get indices(): ReadonlyArray; get hasFieldsIncludedInSearch(): boolean; get keyField(): Field | undefined; getKeyFieldOrThrow(): Field; getKeyFieldTypeOrThrow(): ScalarType; /** * Gets a field that is guaranteed to be unique, to be used for absolute order */ get discriminatorField(): Field; get permissionProfile(): PermissionProfile | undefined; /** * A list of all relations that have a field in this type * * (as opposed to the relation only existing because a different type has a relation field to this root entity) */ get explicitRelations(): ReadonlyArray; /** * A list of all relations concerning this type, regardless of whether there is a field on this type for it */ get relations(): ReadonlyArray; /** * A list of all relations sides concerning this type, regardless of whether there is a field on this type for it */ get relationSides(): ReadonlyArray; validate(context: ValidationContext): void; private validateKeyField; private validatePermissions; private validatePermissionProfileAccessGroup; private validatePermissionProfileRestrictions; private validateIndices; private validateFlexSearch; get billingEntityConfig(): import("./billing").BillingEntityType | undefined; private completeFlexSearchPrimarySort; get timeToLiveTypes(): ReadonlyArray; get effectiveModuleSpecification(): EffectiveModuleSpecification; }