import * as i0 from '@angular/core';
import { Injector, OnInit, Type, InjectionToken } from '@angular/core';
import { AXPAppStartUpService } from '@acorex/platform/core';
import * as i1 from '@acorex/platform/layout/components';
import { AXPCompareViewInputs, AXPCompareViewMode } from '@acorex/platform/layout/components';
import * as i1$1 from '@acorex/platform/workflow';
import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
import * as i4 from '@acorex/platform/layout/widgets';
import { AXBasePageComponent } from '@acorex/components/page';
import { AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext, AXPSearchDisplayGroupResult, AXPSearchDisplayResult } from '@acorex/platform/common';
import { Subject } from 'rxjs';
import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';

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

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

declare class AXPGlobalSearchModule {
    constructor(appInitService: AXPAppStartUpService, injector: Injector);
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalSearchModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPGlobalSearchModule, never, [typeof i1.AXPComponentSlotModule, typeof i1$1.AXPWorkflowModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPGlobalSearchModule>;
}

declare class AXPVersionHistoryModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPVersionHistoryModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPVersionHistoryModule, never, [typeof i1$1.AXPWorkflowModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPVersionHistoryModule>;
}

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

declare class AXPClonePluginModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPClonePluginModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPClonePluginModule, never, [typeof i1$1.AXPWorkflowModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPClonePluginModule>;
}

declare class AXPArchivePluginModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPArchivePluginModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPArchivePluginModule, never, [typeof i1$1.AXPWorkflowModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPArchivePluginModule>;
}

declare class AXPDisablePluginModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPDisablePluginModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPDisablePluginModule, never, [typeof i1$1.AXPWorkflowModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPDisablePluginModule>;
}

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

declare class AXPComparePopupComponent extends AXBasePageComponent implements OnInit {
    inputs: i0.InputSignal<AXPCompareViewInputs | undefined>;
    isBusy: i0.WritableSignal<boolean>;
    mode: i0.InputSignal<AXPCompareViewMode>;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPComparePopupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXPComparePopupComponent, "axp-compare-popup", never, { "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class AXPCompareModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPCompareModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPCompareModule, never, [typeof AXPComparePopupComponent, typeof i1$1.AXPWorkflowModule], [typeof AXPComparePopupComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPCompareModule>;
}

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

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

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

declare class AXMCommonModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMCommonModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCommonModule, never, [typeof AXPExtraPropertiesModule, typeof AXPCategoryModule, typeof AXPGlobalSearchModule, typeof i4.AXPWidgetsModule, typeof AXPVersionHistoryModule, typeof AXPComputedPropertiesModule, typeof AXPClonePluginModule, typeof AXPArchivePluginModule, typeof AXPDisablePluginModule, typeof AXPPrimaryPluginModule, typeof AXPCompareModule, typeof AXPIconPluginModule, typeof AXPColorPluginModule, typeof AXPAvatarPluginModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXMCommonModule>;
}

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

declare class AXMMenuProvider implements AXPMenuProvider {
    private sessionService;
    private homePageService;
    private entityService;
    provide(context: AXPMenuProviderContext): Promise<void>;
}

declare class AXMSearchCommandProvider extends AXPSearchCommandProvider {
    commands: AXPSearchResult[];
}

declare class AXMSettingProvider implements AXPSettingDefinitionProvider {
    private injector;
    private readonly translateService;
    constructor(injector: Injector);
    provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMSettingProvider, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMSettingProvider>;
}

declare const AXPWidgetsList: {
    Editors: {
        DocumentAttachment: string;
        TagBox: string;
        TagEditor: string;
        CheckBox: string;
        ColorBox: string;
        ColorPalette: string;
        DateTimeBox: string;
        Direction: string;
        LargeTextBox: string;
        NumberBox: string;
        UnitValueBox: string;
        PasswordBox: string;
        QueryBuilder: string;
        RichText: string;
        SelectBox: string;
        SelectionList: string;
        TextBox: string;
        InlineDataTable: string;
        ToggleSwitch: string;
        FileTypeExtension: string;
        MapBox: string;
        MediaGallery: string;
        SignatureBox: string;
        LookupBox: string;
        ContactBox: string;
        MetaDataBox: string;
        TemplateBox: string;
        TimeDuration: string;
        DocumentUploader: string;
        MetaSelector: string;
        MetaDataForm: string;
        ColumnFilterSelector: string;
        DataListFilter: string;
        DynamicFormDesigner: string;
    };
    Layouts: {
        BlockLayout: string;
        RepeaterLayout: string;
        TextBlockLayout: string;
        FormField: string;
        PanelLayout: string;
        PageLayout: string;
        DocumentLayout: string;
        GridRowLayout: string;
        GridItemLayout: string;
        GridLayout: string;
        FlexLayout: string;
        FlexItemLayout: string;
        AdvancedGridLayout: string;
        AdvancedGridItemLayout: string;
        FieldsetLayout: string;
        TabsetLayout: string;
        TabsetItemLayout: string;
    };
    Actions: {
        ActionButton: string;
    };
    Advanced: {
        QRCode: string;
        Signature: string;
        Map: string;
        Gallery: string;
        Image: string;
        ImageMarker: string;
        Avatar: string;
        FileUploader: string;
        List: string;
        ListToolbar: string;
        CronJob: string;
        ExtraProperties: string;
        ExtraPropertiesValues: string;
        ExtraPropertiesSchema: string;
    };
    Templates: {
        Designer: string;
        Template: string;
    };
    Entity: {
        EntityList: string;
        EntityReference: string;
        WidgetSelector: string;
    };
    Theme: {
        ThemeColorChooser: string;
        ThemePaletteChooser: string;
        IconChooser: string;
        FontSizeChooser: string;
        FontStyleChooser: string;
    };
};

interface AXPGlobalSearchConfigs {
    window: () => Type<any>;
}
declare const AXP_GLOBAL_SEARCH_CONFIG_TOKEN: InjectionToken<AXPGlobalSearchConfigs>;

declare class AXPGlobalSearchViewModel {
    private settingKeys;
    private searchService;
    private settingService;
    private _text;
    text: i0.Signal<string | null>;
    private _results;
    results: i0.Signal<AXPSearchDisplayGroupResult[]>;
    private _isBusy;
    isBusy: i0.Signal<boolean>;
    isEmpty: i0.Signal<boolean | "" | null>;
    isValid: i0.Signal<boolean>;
    isStart: i0.Signal<boolean>;
    isWelcome: i0.Signal<boolean>;
    private _recentItems;
    private _pinnedItems;
    pinnedItems: i0.Signal<AXPSearchDisplayResult[]>;
    recentItems: i0.Signal<AXPSearchDisplayResult[]>;
    readonly onItemSelected: Subject<AXPSearchDisplayResult>;
    constructor();
    search(text: string): Promise<void>;
    execute(item: AXPSearchDisplayResult): Promise<void>;
    pin(item: AXPSearchDisplayResult): Promise<void>;
    unpin(item: AXPSearchDisplayResult): Promise<void>;
    togglePin(item: AXPSearchDisplayResult): Promise<void>;
    isPinned(item: AXPSearchDisplayResult): boolean;
    private updateSelectionHistory;
    private getTopRecentItems;
    clearRecentItems(): Promise<void>;
    private loadSettings;
    private saveSettings;
}

declare class AXMLockPopupWorkflowAction extends AXPWorkflowAction {
    private readonly translationService;
    private readonly layoutBuilder;
    private readonly lockService;
    private readonly sessionService;
    execute(context: AXPWorkflowContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMLockPopupWorkflowAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMLockPopupWorkflowAction>;
}
declare const AXMLockPopupWorkflow: AXPWorkflow;

declare class AXMUnlockConfirmWorkflowAction extends AXPWorkflowAction {
    private dialogService;
    private translationService;
    private lockService;
    private sessionService;
    execute(context: AXPWorkflowContext): Promise<void>;
}
declare const AXMUnlockConfirmWorkflow: AXPWorkflow;

declare const disablePlugin: AXPEntityActionPlugin;

export { AXMCommonModule, AXMLockPopupWorkflow, AXMLockPopupWorkflowAction, AXMMenuProvider, AXMSearchCommandProvider, AXMSettingProvider, AXMUnlockConfirmWorkflow, AXMUnlockConfirmWorkflowAction, AXPDisablePluginModule, AXPGlobalSearchModule, AXPGlobalSearchViewModel, AXPVersionHistoryModule, AXPWidgetsList, AXP_GLOBAL_SEARCH_CONFIG_TOKEN, RootConfig, disablePlugin };
export type { AXPGlobalSearchConfigs };
