import * as i0 from '@angular/core';
import { Injector, OnInit } from '@angular/core';
import * as i4 from '@acorex/platform/workflow';
import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
import * as i5 from '@acorex/platform/layout/components';
import { AXPEntity } from '@acorex/platform/common';
import { AXPEntityModel, AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
import { AXBasePageComponent } from '@acorex/components/page';

declare class AppVersionCheckService {
    private versionProvider;
    private settingsService;
    private workflowService;
    private appVersionService;
    checkVersion(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AppVersionCheckService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AppVersionCheckService>;
}

declare class AXPUpdaterService {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPUpdaterService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXPUpdaterService>;
}

declare class AXMUpdaterModule {
    private updaterService;
    constructor(updaterService: AXPUpdaterService);
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMUpdaterModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMUpdaterModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXMUpdaterModule>;
}

declare class AXMGlobalVariableEntityModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMGlobalVariableEntityModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMGlobalVariableEntityModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXMGlobalVariableEntityModule>;
}

declare class AXMAppVersionEntityModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMAppVersionEntityModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMAppVersionEntityModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXMAppVersionEntityModule>;
}

declare class AXMPlatformManagementModule {
    /**
     * @ignore
     */
    constructor(appVersionCheck: AppVersionCheckService);
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMPlatformManagementModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMPlatformManagementModule, never, [typeof AXMUpdaterModule, typeof AXMGlobalVariableEntityModule, typeof AXMAppVersionEntityModule, typeof i4.AXPWorkflowModule, typeof i5.AXPComponentSlotModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXMPlatformManagementModule>;
}

declare const RootConfig: {
    config: {
        i18n: string;
    };
    module: {
        route: string;
        name: string;
        title: string;
        icon: string;
    };
    entities: {
        localizationManagement: {
            name: string;
            title: string;
            icon: string;
        };
        globalVariable: {
            name: string;
            title: string;
            icon: string;
        };
        appVersion: {
            name: string;
            title: string;
            titlePlural: string;
            icon: string;
        };
    };
};

declare function globalVariableEntityFactory(injector: Injector): Promise<AXPEntity | null>;

interface AXMGlobalVariableEntityModel extends AXPEntityModel<string> {
    name: string;
    title: string;
    dataType: string;
    value: string;
}

declare abstract class AXMGlobalVariablesService extends AXMEntityCrudServiceImpl<string, AXMGlobalVariableEntityModel> {
}
declare class AXMGlobalVariablesServiceImpl extends AXMEntityCrudServiceImpl<string, AXMGlobalVariableEntityModel> {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMGlobalVariablesServiceImpl, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMGlobalVariablesServiceImpl>;
}

declare function appVersionEntityEntityFactory(injector: Injector): Promise<AXPEntity | null>;

interface AXMAppVersionEntityModel extends AXPEntityModel<string> {
    versionNumber: string;
    publishDate: string;
    changeLog: string;
    showFirstTimePopup: boolean;
}
interface AXMAppVersionListComponentModel {
    id: string | undefined;
    title: string;
    content: SafeHtml | string;
}

declare abstract class AXMAppVersionService extends AXMEntityCrudServiceImpl<string, AXMAppVersionEntityModel> {
}
declare class AXMAppVersionServiceImpl extends AXMEntityCrudServiceImpl<string, AXMAppVersionEntityModel> {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMAppVersionServiceImpl, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMAppVersionServiceImpl>;
}

declare class AXMNotifyAppComponent extends AXBasePageComponent {
    data: AXMAppVersionEntityModel;
    safeData: SafeHtml | null;
    isShowAgain: boolean;
    sanitize: DomSanitizer;
    protected ngOnInit(): void;
    send(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMNotifyAppComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXMNotifyAppComponent, "axm-notify-app", never, {}, {}, never, never, true, never>;
}

declare class AXMAppVersionSlotComponent implements OnInit {
    private versionProvider;
    private workflowService;
    text: string;
    protected versionNumber: string;
    ngOnInit(): Promise<void>;
    openPopup(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMAppVersionSlotComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXMAppVersionSlotComponent, "ng-component", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
}

declare class AXMChangeLogPopupAction extends AXPWorkflowAction {
    private popupService;
    execute(context: AXPWorkflowContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMChangeLogPopupAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMChangeLogPopupAction>;
}
declare class AXMChangeLogUpdateSettingAction extends AXPWorkflowAction {
    private settingService;
    execute(context: AXPWorkflowContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMChangeLogUpdateSettingAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMChangeLogUpdateSettingAction>;
}
declare const AXMWhatsNewWorkflow: AXPWorkflow;
declare class AXMCheckNewVersionAction extends AXPWorkflowAction {
    private appVersionCheckService;
    private settingService;
    execute(context: AXPWorkflowContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMCheckNewVersionAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMCheckNewVersionAction>;
}
declare const AXMCheckNewVersionWorkflow: AXPWorkflow;

export { AXMAppVersionEntityModule, AXMAppVersionService, AXMAppVersionServiceImpl, AXMAppVersionSlotComponent, AXMChangeLogPopupAction, AXMChangeLogUpdateSettingAction, AXMCheckNewVersionAction, AXMCheckNewVersionWorkflow, AXMGlobalVariableEntityModule, AXMGlobalVariablesService, AXMGlobalVariablesServiceImpl, AXMNotifyAppComponent, AXMPlatformManagementModule, AXMWhatsNewWorkflow, RootConfig, appVersionEntityEntityFactory, globalVariableEntityFactory };
export type { AXMAppVersionEntityModel, AXMAppVersionListComponentModel, AXMGlobalVariableEntityModel };
