import type { UmbWorkspaceSplitViewManager } from '../../controllers/workspace-split-view-manager.controller.js';
import type { UmbPropertyDatasetContext } from '../../../property/property-dataset/property-dataset-context.interface.js';
import type { UmbSubmittableWorkspaceContext } from './submittable-workspace-context.interface.js';
import type { Observable } from '../../../../../external/rxjs/index.js';
import type { UmbVariantId, UmbEntityVariantModel, UmbEntityVariantOptionModel } from '../../../variant/index.js';
import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
import type { UmbValidationController } from '../../../validation/index.js';
import type { UmbReadOnlyVariantGuardManager } from '../../../utils/index.js';
export interface UmbVariantDatasetWorkspaceContext<VariantType extends UmbEntityVariantModel = UmbEntityVariantModel> extends UmbSubmittableWorkspaceContext {
    getName(variantId?: UmbVariantId): string | undefined;
    setName(name: string, variantId?: UmbVariantId): void;
    name(variantId?: UmbVariantId): Observable<string>;
    variants: Observable<Array<VariantType>>;
    variantOptions: Observable<Array<UmbEntityVariantOptionModel<VariantType>>>;
    splitView: UmbWorkspaceSplitViewManager;
    getVariant(variantId: UmbVariantId): VariantType | undefined;
    readonly readOnlyGuard: UmbReadOnlyVariantGuardManager;
    varies: Observable<boolean | undefined>;
    variesByCulture: Observable<boolean | undefined>;
    variesBySegment: Observable<boolean | undefined>;
    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>;
    createPropertyDatasetContext(host: UmbControllerHost, variantId?: UmbVariantId): UmbPropertyDatasetContext;
    getVariantValidationContext(variantId: UmbVariantId): UmbValidationController | undefined;
}
