import { AXPEntity, AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';
import * as i0 from '@angular/core';
import { Injector } from '@angular/core';
import { AXPEntityModel, AXMEntityCrudServiceImpl, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityPreloadEntity } from '@acorex/platform/layout/entity';

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

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

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

interface AXMTextTemplateManagementCategoryEntityModel extends AXPEntityModel<string> {
    name?: string;
    title?: string;
}

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

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

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

interface AXMTextTemplateManagementTemplateEntityModel extends AXPEntityModel<string> {
    name: string;
    title: string;
    content: string;
    type: string;
    category: AXMTextTemplateManagementCategoryEntityModel;
}

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

declare class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {
    private injector;
    preload(): AXPEntityPreloadEntity[];
    get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMEntityProvider, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMEntityProvider>;
}

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

declare class AXMTextTemplateManagementModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMTextTemplateManagementModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMTextTemplateManagementModule, never, [typeof AXMTextTemplateManagementTemplateEntityModule, typeof AXMTextTemplateManagementCategoryEntityModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXMTextTemplateManagementModule>;
}

export { AXMEntityProvider, AXMMenuProvider, AXMTextTemplateManagementCategoryEntityModule, AXMTextTemplateManagementCategoryEntityService, AXMTextTemplateManagementCategoryEntityServiceImpl, AXMTextTemplateManagementModule, AXMTextTemplateManagementTemplateEntityModule, AXMTextTemplateManagementTemplateEntityService, AXMTextTemplateManagementTemplateEntityServiceImpl, RootConfig, categoryFactory, templateFactory };
export type { AXMTextTemplateManagementCategoryEntityModel, AXMTextTemplateManagementTemplateEntityModel };
