import { Nullable, NullableResultPromise, type Optional } from "../../base-types";
import { IContentHubClient } from "../../clients/content-hub-client";
import type CultureInfo from "../../culture-info";
import { IPropertyLoadOption } from "../querying/property-load-option";
import { IEntity } from "./entity";
import { IProperty } from "./property";
export declare class PropertyManager {
    private readonly _client;
    private readonly _entity;
    private readonly _properties;
    get count(): number;
    constructor(client: IContentHubClient, properties: Array<IProperty>, entity: IEntity);
    getProperty<T extends IProperty = IProperty>(name: string): Nullable<T>;
    getProperties(): Array<IProperty>;
    loadPropertyAsync<T extends IProperty = IProperty>(propertyName: string, culture: Optional<CultureInfo>): NullableResultPromise<T>;
    loadPropertiesAsync(propertyLoadOption: IPropertyLoadOption, culture: Optional<CultureInfo>): Promise<boolean>;
    hasMissingProperties(propertyLoadOption: IPropertyLoadOption): boolean;
    importMissingProperties(entity: Nullable<IEntity>): void;
    private fetchPropertyAsync;
}
