import { BuildOptions, ServiceOptions, RoleBasedSecurityProviderOptions, CombinedSecurityProviderOptions } from './models';
import { ICombinableSecurityProviderComposer, SecurityProviderCombinableRuleComposer } from './CombinableSecurityProviderComposer';
import { IServiceManifestComposer, ServiceManifestComposer } from './ServiceManifestComposer';
import { IClientServiceConfigurator } from './ConfigurationClientServiceRegistry';
export interface IWebAppServiceComposer extends IServiceManifestComposer<IWebAppServiceComposer> {
    /**
    * Set options to build process
    * @param options the options for defining the build with options.
    */
    withBuildOptions: (options: BuildOptions) => IWebAppServiceComposer;
    /**
    * Add a security provider for this omnia service
    * This security provider is connected to the security roles concept in omnia.
    * @param options the options for defining a role based security provider.
    */
    AddRoleBasedSecurityProvider: (options: RoleBasedSecurityProviderOptions) => IWebAppServiceComposer;
    /**
    * Add a security provider for this omnia service
    * This security provider is a combination of other security providers.
    *
    * Using this Security provider would mean avaluating the logical combination of access to other security providers
    *
    * @param options the options for defining a combined security provider.
    */
    AddCombinedSecurityProvider: (options: CombinedSecurityProviderOptions) => ICombinableSecurityProviderComposer<IWebAppServiceComposer>;
    /**
    * Add a configuration to enable features at the runtimes.
    * @param configurationType the type for defining a configuration.
    */
    configuration: <T extends IClientServiceConfigurator<IWebAppServiceComposer>>(configurationType: any) => T;
}
export declare class WebAppServiceComposer extends ServiceManifestComposer<WebAppServiceComposer> implements IWebAppServiceComposer {
    private manifestId;
    private manifestTitle;
    constructor(manifestId: string, manifestTitle: string, serviceOptions: ServiceOptions);
    configuration: <T extends IClientServiceConfigurator<IWebAppServiceComposer>>(configurationType: any) => T;
    withBuildOptions: (options: BuildOptions) => this;
    AddRoleBasedSecurityProvider: (options: RoleBasedSecurityProviderOptions) => this;
    AddCombinedSecurityProvider: (options: CombinedSecurityProviderOptions) => SecurityProviderCombinableRuleComposer<IWebAppServiceComposer>;
}
