@omnia/fx-models
Version:
Provide Omnia Fx Models Stuffs.
36 lines (35 loc) • 1.58 kB
TypeScript
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>;
};
}
}