import type { UmbPropertyGuardRule } from './property-guard.manager.js';
import type { UmbVariantId } from '../../variant/index.js';
import type { Observable } from '../../../../libs/observable-api/index.js';
import type { UmbReferenceByUnique } from '../../models/index.js';
import { UmbGuardManagerBase } from '../../utils/index.js';
export interface UmbVariantPropertyGuardRule extends UmbPropertyGuardRule {
    /**
     * @description - The variant id of the property.
     * @type {UmbVariantId}
     * @memberof UmbVariantPropertyGuardRule
     */
    variantId?: UmbVariantId;
    /**
     * @description - The variant id of the dataset. This is used to determine if the rule applies to the current dataset.
     * @type {UmbVariantId}
     * @memberof UmbVariantPropertyGuardRule
     */
    datasetVariantId?: UmbVariantId;
}
/**
 * UmbVariantPropertyGuardManager is a class that manages the rules for variant properties.
 * @export
 * @class UmbVariantPropertyGuardManager
 * @augments {UmbGuardManagerBase<UmbVariantPropertyGuardRule>}
 */
export declare class UmbVariantPropertyGuardManager extends UmbGuardManagerBase<UmbVariantPropertyGuardRule> {
    #private;
    /**
     * Checks if the variant and propertyType is permitted.
     * @param {UmbVariantId} propertyVariantId - The variant id to check.
     * @param {UmbReferenceByUnique} propertyType - The property type to check.
     * @param {UmbVariantId} datasetVariantId - The dataset variant id to check.
     * @returns {Observable<boolean>} - Returns an observable that emits true if the variant and propertyType is permitted, false otherwise.
     * @memberof UmbVariantPropertyGuardManager
     */
    isPermittedForVariantAndProperty(propertyVariantId: UmbVariantId, propertyType: UmbReferenceByUnique, datasetVariantId: UmbVariantId): Observable<boolean>;
    /**
     * Checks if the variant and propertyType is permitted.
     * @param {UmbVariantId} propertyVariantId - The variant id to check.
     * @param {UmbReferenceByUnique} propertyType - The property type to check.
     * @param {UmbVariantId} datasetVariantId - The dataset variant id to check.
     * @returns {boolean} - Returns true if the variant and propertyType is permitted, false otherwise.
     * @memberof UmbVariantPropertyGuardManager
     */
    getIsPermittedForVariantAndProperty(propertyVariantId: UmbVariantId, propertyType: UmbReferenceByUnique, datasetVariantId: UmbVariantId): boolean;
}
