import { FeaturesLocalization, OmniaTheming, VueComponentBase } from "..";
import { SubscriptionHandler } from "../../";
import { OmniaContext } from "../../contexts";
import { FeatureInstance, GuidValue } from "../../models";
import { SecurityService } from "../../services";
import { FeatureStore } from "../../stores";
export interface VDataGridHeader {
    sortable: boolean;
    text: string;
    align: string;
}
export interface VDataGridItemScopedSlot<TItem> {
    item?: TItem;
    selected?: boolean;
    isGroupHeader?: boolean;
    title?: string;
    description?: string;
    consentInformation?: string;
    category?: string;
    needConsent?: boolean;
    isBusy?: boolean;
    hasError?: boolean;
    errorMsg?: string;
}
export interface IFeatureActivationProps {
    appInstanceId?: GuidValue;
    handleClose: () => void;
    handleFeatureAction: (action: string, featureId: GuidValue) => void;
    targetResolverType: string;
}
export declare class FeatureActivation extends VueComponentBase<IFeatureActivationProps> {
    appInstanceId: GuidValue;
    handleClose: () => void;
    handleFeatureAction: (action: string, featureId: GuidValue) => void;
    targetResolverType: string;
    private omniaUxLoc;
    loc: FeaturesLocalization.locInterface;
    featureStore: FeatureStore;
    private appStore;
    private themeStore;
    omniaTheming: OmniaTheming;
    omniaContext: OmniaContext;
    subscriptionHandler: SubscriptionHandler;
    securityService: SecurityService;
    private serviceContainerContext;
    key: string;
    isLoadingPermissions: boolean;
    isLoadingFeatures: boolean;
    private isLoadingApp;
    isUpgradingFull: boolean;
    featuresInstances: Array<VDataGridItemScopedSlot<FeatureInstance>>;
    featuresRequireUpgrade: Array<VDataGridItemScopedSlot<FeatureInstance>>;
    bindingState: string;
    headers: Array<VDataGridHeader>;
    allowCheckingStatus: boolean;
    private readonly consentDialogHeaders;
    private requiredConsentFeatures;
    private currentConsentFeatureId;
    private consentDialogVisible;
    private consentUrlDialogVisible;
    private deleteAppDialog;
    private featureDeactive;
    private azureAdPermissionResourcesPromise;
    private resources;
    private consentUrl;
    private appInstance;
    private appTemplate;
    private colors;
    private styles;
    private consentLinkReady;
    private pullIntervalHandler;
    private checkLastRequiredFeatureLoading;
    private lastRquiredPermissionFeature;
    private isMissingAdPermission;
    created(): void;
    beforeDestroy(): void;
    get isLoading(): boolean;
    private loadData;
    private pollingFeatureStatusIfNeeded;
    private isPollingNeeded;
    private editingFeatureInstance;
    private getProvidedParameterValues;
    onClose(): void;
    onFeatureAction(action: any, featureId: any): void;
    private bindFeaturesInstances;
    private handlePropertyBlade;
    private handleFeatureStatus;
    private activateFeature;
    private requestConsent;
    private removeFeature;
    private upgradeFeature;
    private doOneFeatureUpgradeAsPromise;
    private upgradeAllFeatures;
    private getTenantPermissionsResources;
    private populateAzureAdPermissionsInfo;
    private getConsentUrl;
    private buildRedirectUrl;
    private getRedirectUrl;
    private checkRequestedPermissionsSynced;
    private checkRequestedPermissionsReady;
    private adminConsentRedirect;
    private copyUrlToClipboard;
    private showConsentDialog;
    private closeConsentDialog;
    private isLastRequiredPermissionFeature;
    private renderItems;
    private renderItemAction;
    private renderItemExpansionInfoAndAction;
    private renderPermissions;
    private renderAvatar;
    private renderMissingPermissions;
    render(): VueTsxSupport.JSX.Element;
    private renderDialog;
    private renderConsentUrlDialog;
    private renderDeleteDialog;
}
