import type { UmbDocumentVariantModel } from '../types.js';
import type { UmbPropertyTypeModel } from '../../../content/content-type/index.js';
import { UmbControllerBase } from '../../../../libs/class-api/index.js';
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
import { type Observable } from '../../../../libs/observable-api/index.js';
import type { UmbVariantPropertyGuardManager, UmbVariantPropertyGuardRule } from '../../../core/property/index.js';
import { UmbVariantId, type UmbEntityVariantOptionModel } from '../../../core/variant/index.js';
export declare abstract class UmbDocumentAllowEditInvariantFromNonDefaultControllerBase extends UmbControllerBase {
    constructor(host: UmbControllerHost);
    protected abstract _preventEditInvariantFromNonDefault(): Promise<void>;
    protected _observeAndApplyRule(args: {
        propertiesObservable: Observable<Array<UmbPropertyTypeModel>>;
        variantOptionsObservable: Observable<UmbEntityVariantOptionModel<UmbDocumentVariantModel>[]>;
        propertyWriteGuard: UmbVariantPropertyGuardManager;
    }): void;
    protected _createRule(args: {
        datasetVariantId: UmbVariantId;
    }): UmbVariantPropertyGuardRule;
}
