UNPKG

@omnia/fx-models

Version:
36 lines (35 loc) 1.58 kB
import { ServiceContainerContext } from "@omnia/fx"; import { AppInstance, AppTemplate, BusinessProfile, Feature, GuidValue } from "@omnia/fx/models"; import { AppDefinition } from "../apps"; import { ApiPath, IExtendApiManifestWithConfiguration } from "../Extends"; export interface IFeatureValidator { } export interface ITenantScopedFeatureValidator extends IFeatureValidator { checkAvailable: (featureDefinition: Feature) => Promise<boolean>; } export interface IProfileScopedFeatureValidator extends IFeatureValidator { checkAvailable: (featureDefinition: Feature, profile: BusinessProfile) => Promise<boolean>; } export interface IAppScopedFeatureValidator extends IFeatureValidator { checkAvailable: (featureDefinition: Feature, appDefinition: AppDefinition, appTemplate: AppTemplate, appInstance?: AppInstance) => Promise<boolean>; } export interface IFeatureManagementUsageApi { loadValidators: (serviceContainerContext: ServiceContainerContext, featureDefinition: Feature) => Promise<IFeatureValidator[]>; } export interface IFeatureManagementRegistrationApi { registerValidator: (appDefinitionId: GuidValue, handler: new () => IFeatureValidator) => void; } declare module "./UxApi" { interface IOmniaUxApi { feature: { use: Promise<IFeatureManagementUsageApi>; registration: Promise<IFeatureManagementRegistrationApi>; }; } interface IOmniaUxExtendApiManifest { feature: { use: ApiPath; registration: IExtendApiManifestWithConfiguration<string>; }; } }