import type { MapStringTo, Nullable, NullableResultPromise, Optional } from "../../base-types"; import type { IContentHubClient } from "../../clients/content-hub-client"; import CultureInfo from "../../culture-info"; import Link from "../../link"; import { MemberLoadOption } from "../querying/member-load-option"; import { IPropertyLoadOption } from "../querying/property-load-option"; import { IRelationLoadOption } from "../querying/relation-load-option"; import { PropertyDataType, PropertyValue } from "./data-type"; import { IEntity } from "./entity"; import { EntityConstructionArgs } from "./entity-construction-args"; import { IEntityDefinition } from "./entity-definition"; import { IMember } from "./member"; import { IProperty } from "./property"; import { PropertyManager } from "./property-manager"; import { IRelatedPath } from "./related-path"; import { IRelation, RelationType } from "./relation"; import { RelationManager } from "./relation-manager"; import { RelationRole } from "./relation-role"; import { IRendition } from "./rendition"; export declare abstract class EntityBase implements IEntity { protected readonly _client: IContentHubClient; protected readonly _members: MapStringTo; protected readonly _propertyManager: PropertyManager; protected readonly _relationManager: RelationManager; id?: number; identifier: Nullable; hasPublicLink?: boolean; annotationCount?: number; masterFileModifiedOn?: Date; gatewayLinks?: Record; publicLink?: string; publicCollectionLink?: string; definitionName: string; readonly lockedBy: Nullable; readonly lockedOn: Nullable; isRootTaxonomyItem: boolean; isPathRoot: boolean; inheritsSecurity: boolean; isSystemOwned: boolean; version: number; cultures: Array; isCurrentUserDefault?: boolean; isEnabled?: boolean; modules?: Array; combinedPublishStatus?: string; combinedPublishStatusDetails?: string; protected _properties: Array; get properties(): ReadonlyArray; protected _relations: Array; get relations(): ReadonlyArray; readonly createdOn?: Date; readonly createdBy?: number; readonly modifiedOn?: Date; readonly modifiedBy?: number; readonly externalDataIdentifier?: string; isTracking: boolean; get canDoLazyLoading(): boolean; get isDirty(): boolean; get isNew(): boolean; abstract get renditions(): Array; abstract get relatedPaths(): Array; constructor(client: IContentHubClient, args: EntityConstructionArgs); private isProperty; getProperty(name: string): Nullable; getPropertyAsync(name: string, loadOption: MemberLoadOption | undefined, culture: Optional): NullableResultPromise; getPropertyValue(name: string, culture?: CultureInfo): PropertyValue; getPropertyValueAsync(name: string, loadOption?: MemberLoadOption, culture?: CultureInfo): NullableResultPromise>; setPropertyValue(name: string, value: PropertyValue, culture?: CultureInfo): void; getRelation(name: string, role?: RelationRole, _returnNull?: boolean): Nullable; getRelationAsync(name: string, role?: RelationRole, loadOption?: MemberLoadOption): NullableResultPromise; loadPropertiesAsync(propertyLoadOption: IPropertyLoadOption, culture: Optional): Promise; loadRelationsAsync(relationLoadOption: IRelationLoadOption): Promise; loadMembersAsync(propertyLoadOption: IPropertyLoadOption, relationLoadOption: IRelationLoadOption): Promise; getEntityDefinitionAsync(): Promise; abstract getRendition(name: string): Nullable; abstract getRelatedPath(name: string): Nullable; abstract getPermissionsAsync(): Promise>; startTracking(): void; markClean(): void; private getDirtyTrackingMembers; }