import { IBlockingComposer } from "./BlockingComposer"; import { ResourcesOptions, WebComponentOptions, ILocalizationComposer, ManifestGroupOptions, LocalizationOptions, ServiceFeatureOption, ServiceAppDefinitionOption, ServiceRoleDefinitionOption } from "./models"; import { IResourcesComposer, IReOpendedResourcesComposer } from "./ResourcesComposer"; import { IWebComponentComposer } from "./ComponentComposer"; import { IManifestGroupComposer } from "./ManifestGroupComposer"; import { IRegisterService } from './ServiceComposer'; import { Guid, GuidValue } from '../../fx-models'; import { IClientServiceConfigurator } from '.'; import { IServiceFeatureComposer } from "./ServiceFeatureComposer"; export interface IComposerDone { done: () => T; } export interface INewManifestComposer extends IRegisterService { /** * Registers a new web component manifest * A web component is the key entity for a modular UI, each * web component can be loaded separately when required. * A web component will be loaded as soon as the matching element name appears in the HTML DOM. * Additional load rules can be added. * Usage: registerWebComponent({...}).*additionalOperations * @param componentOptions the options for the webcomponent */ registerWebComponent: (componentOptions: WebComponentOptions) => IWebComponentComposer; /** * Registers a new resources manifest * Usage: registerResource({...}).*additionalOperations * @param resourcesOptions the options for defining the resources. */ registerResources: (resourcesOptions: ResourcesOptions) => IResourcesComposer; /** * Registers a new resource group manifest * This type of manifest groups your webcomponent and resources into a group, all web components and resources * in the group will be loaded as one bundle. * Usage: registerResourceGroup({...}).*additionalOperations * @param groupOptions the options for the defining the webcomponent group. */ registerResourceGroup: (groupOptions: ManifestGroupOptions) => IManifestGroupComposer; /** * Registers a new localization manifest * Used to add labels for localization * Usage: registerLocalization("").*additionalOperations * @param lcid the language.. */ registerLocalization: (localizationOptions?: LocalizationOptions) => ILocalizationComposer; registerFeature: (options: ServiceFeatureOption) => IServiceFeatureComposer; registerAppDefinition: (options: ServiceAppDefinitionOption) => void; registerRoleDefinition: (option: ServiceRoleDefinitionOption) => void; } export declare class Composer { /** Do not instantiate, use static members instead of constructor / new Composer(). E.g. Composer.registerComponent() */ constructor(); /** * Registers a new manifest * @param manifestId the unique id of the manifest, must be a valid guid. * @param name a friendly name of the manifest. */ static registerManifest: (manifestId: GuidValue, name?: string) => INewManifestComposer; /** * Re-opens resources manifest, so more resources can be included. * {param}:manifestId the unique id of the resource manifest to open, must be a valid guid. */ static openResourceManifest: (manifestId: GuidValue) => IReOpendedResourcesComposer; /** Add information about things you want to block. E.g. block a manifest from being loaded, so you can provide your own implementation */ static get block(): IBlockingComposer; static importManifests: (folderPath: string) => { configuration: >(omniaServiceId: Guid, configurationType: any) => T; done: () => { registerManifest: (manifestId: GuidValue, name?: string) => INewManifestComposer; openResourceManifest: (manifestId: GuidValue) => IReOpendedResourcesComposer; block: IBlockingComposer; }; }; }