import { AppInstanceCreateInfo, AppInstance, GuidValue, AppTemplate, AppProvisioningStepContext, AppDefinition, AppProvisioningStepInfo, AppProvisioningHandlerMessage, IMessageBusSubscriptionHandler, AppProvisioningStepRegistration, InformationSummaryRenderer } from "../../../models";
import { SubscriptionHandler } from "../../..";
import { AppStore, DirectionRuleStore, EnterprisePropertyStore, FeatureStore, MultilingualStore, TargetingPropertyStore } from "../../../stores";
import { VueComponentBase, OmniaTheming, OmniaUxLocalization } from "../..";
import { AppService, LocalizationService } from "../../../services";
export interface IAppProvisioningComponentProps {
    appDefinitionId?: GuidValue;
    showEnabledTemplatesOnly: boolean;
    onApproved?: () => void;
    onProvisioningCanceled?: () => void;
    onProvisioningStarted?: () => void;
    onInstancePropertiesChanged?: () => void;
    onProvisioningCompleted?: (appInstance: AppInstance) => void;
}
export declare abstract class AppProvisioningComponentBase<Props = IAppProvisioningComponentProps, EventsWithOn = {}, ScopedSlotArgs = {}> extends VueComponentBase<Props, EventsWithOn, ScopedSlotArgs> {
    appDefinitionId?: GuidValue;
    showEnabledTemplatesOnly: boolean;
    onApproved?: () => void;
    onProvisioningCanceled?: () => void;
    onProvisioningStarted?: () => void;
    onInstancePropertiesChanged?: () => void;
    onProvisioningCompleted?: (appInstance: AppInstance) => void;
    enableUserStep: boolean;
    allowMultipleAppAdministrators?: boolean;
    allowMemberAndGroup?: boolean;
    protected omniaTheming: OmniaTheming;
    protected featureStore: FeatureStore;
    protected localizationService: LocalizationService;
    protected enterprisePropertyStore: EnterprisePropertyStore;
    protected appStore: AppStore;
    protected appService: AppService;
    protected targetingPropertyStore: TargetingPropertyStore;
    protected directionStore: DirectionRuleStore;
    protected multilingualStore: MultilingualStore;
    private omniaContext;
    protected subscriptionHandler: SubscriptionHandler;
    registerAppProvisioningStepsSubscriptionHandler: IMessageBusSubscriptionHandler;
    defaultSteps: Array<AppProvisioningStepRegistration>;
    protected omniaUxLoc: OmniaUxLocalization;
    private businessProfile;
    protected appInstance: AppInstance;
    protected appTemplate: AppTemplate;
    protected appDefinition: AppDefinition;
    protected waitingAfterTemplateSelected: boolean;
    protected appProvisioningHandler: {
        [appDefinitionId: string]: AppProvisioningHandlerMessage[];
    };
    protected abstract onTemplateSelected(appTemplate: AppTemplate, appDefinition: AppDefinition): any;
    constructor();
    created(): Promise<void>;
    addAdditonalStep(msg: AppProvisioningStepRegistration): void;
    beforeDestroy(): void;
    protected onCreateAppInstance(appInstance: AppInstance, appInstanceCreateInfo: AppInstanceCreateInfo): Promise<AppInstanceCreateInfo>;
    private getOmniaUrl;
    protected addTenantUrl(businessProfileId: GuidValue, adminRouter: string): string;
    protected getAdminBladeUrl(businessProfileId: GuidValue, manifestId: string): string;
    protected initAppInstanceInfo(appTemplate: AppTemplate, appDefinition: AppDefinition): Promise<void>;
    protected ensureDefaultEnterprisePropertyValues(): Promise<void>;
    private convertDefaultEnterprisePropertyValue;
    private getCalcuatedDate;
    protected createAppProvisioningContextInstance(stepInfo: AppProvisioningStepInfo): AppProvisioningStepContext;
    protected getAppProvisioningSteps(appTemplate: AppTemplate): Promise<AppProvisioningStepInfo[]>;
    protected processAppProvisioningSteps(appProvisioningSteps: AppProvisioningStepInfo[]): Promise<AppProvisioningStepInfo[]>;
    protected translateSteps(steps: AppProvisioningStepInfo[]): AppProvisioningStepInfo[];
    private ensureLoadStepsRegistration;
    private getOverriddenInformationInputManifestId;
    private getAppendInformationInputManifestId;
    protected getInformationSummaryRenderer(): InformationSummaryRenderer;
}
