import { AppDefinition, AppInstance, AppTemplate, BusinessProfile, Feature, IAppScopedFeatureValidator, IProfileScopedFeatureValidator, ITenantScopedFeatureValidator } from "@omnia/fx-models";
export declare abstract class TenantScopedFeatureValidatorBase implements ITenantScopedFeatureValidator {
    abstract checkAvailable: (featureDefinition: Feature) => Promise<boolean>;
    isAvailable: (featureDefinition: Feature, contextParameterValues: {
        [param: string]: unknown;
    }, requiredProvidedContextParameters: string[], optionalProvidedContextParameters: string[]) => Promise<boolean>;
}
export declare abstract class ProfileScopedFeatureValidatorBase implements IProfileScopedFeatureValidator {
    abstract checkAvailable: (featureDefinition: Feature, profile: BusinessProfile) => Promise<boolean>;
    isAvailable: (featureDefinition: Feature, contextParameterValues: {
        [param: string]: unknown;
    }, requiredProvidedContextParameters: string[], optionalProvidedContextParameters: string[], profile: BusinessProfile) => Promise<boolean>;
}
export declare abstract class AppScopedFeatureValidatorBase implements IAppScopedFeatureValidator {
    abstract checkAvailable: (featureDefinition: Feature, appDefinition: AppDefinition, appTemplate: AppTemplate, appInstance?: AppInstance) => Promise<boolean>;
    isAvailable: (featureDefinition: Feature, contextParameterValues: {
        [param: string]: unknown;
    }, requiredProvidedContextParameters: string[], optionalProvidedContextParameters: string[], appDefinition: AppDefinition, appTemplate: AppTemplate, appInstance?: AppInstance) => Promise<boolean>;
}
