import type { Observable } from '../../../../external/rxjs/index.js';
import type { UmbPropertyValueData } from '../../../core/property/index.js';
import type { UmbContentTypeModel, UmbContentTypeStructureManager } from '../../content-type/index.js';
import type { UmbVariantId } from '../../../core/variant/index.js';
import type { UmbApi } from '../../../../libs/extension-api/index.js';
import type { UmbEntityUnique } from '../../../core/entity/index.js';
import type { UmbReadOnlyVariantGuardManager } from '../../../core/utils/index.js';
/**
 * The data supplier for a Element Property Dataset
 */
export interface UmbElementPropertyDataOwner<ContentModel extends {
    values: Array<UmbPropertyValueData>;
}, ContentTypeModel extends UmbContentTypeModel = UmbContentTypeModel> extends UmbApi {
    unique: Observable<UmbEntityUnique | undefined>;
    getUnique(): UmbEntityUnique | undefined;
    getEntityType(): string;
    readonly structure: UmbContentTypeStructureManager<ContentTypeModel>;
    readonly values: Observable<ContentModel['values'] | undefined>;
    getValues(): ContentModel['values'] | undefined;
    isLoaded(): Promise<unknown> | undefined;
    readonly readOnlyGuard: UmbReadOnlyVariantGuardManager;
    propertyValueByAlias<ReturnValue = unknown>(alias: string, variantId?: UmbVariantId): Promise<Observable<ReturnValue | undefined> | undefined>;
    getPropertyValue<ReturnValue = unknown>(alias: string, variantId?: UmbVariantId): ReturnValue | undefined;
    setPropertyValue(alias: string, value: unknown, variantId?: UmbVariantId): Promise<void>;
    initiatePropertyValueChange(): void;
    finishPropertyValueChange(): void;
}
