import * as i0 from '@angular/core';
import { Injector, OnInit, Type, InjectionToken } from '@angular/core';
import * as i1 from '@acorex/platform/workflow';
import { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';
import * as i1$1 from '@acorex/platform/layout/widget-core';
import * as i1$2 from '@acorex/platform/core';
import { AXPAppStartUpService, AXPFeatureDefinitionProvider, AXPFeatureDefinitionProviderContext, AXPModuleManifest, AXPBreadcrumbItem } from '@acorex/platform/core';
import { AXBasePageComponent } from '@acorex/components/page';
import { AXPCompareViewInputs, AXPCompareViewMode } from '@acorex/platform/layout/components';
import * as i1$3 from '@acorex/core/validation';
import { AXValidationRuleOptions, AXValidationRule, AXValidationRuleResult } from '@acorex/core/validation';
import * as i23 from '@acorex/platform/layout/widgets';
import { AXPMenuProvider, AXPMenuProviderContext, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext, AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPStatusProvider, AXPStatusDefinition, AXPStatusTransition, AXPSystemStatusType } from '@acorex/platform/common';
import { Subject } from 'rxjs';
import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';
import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 AXPGlobalSearchModule {
    constructor(appInitService: AXPAppStartUpService, injector: Injector);
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalSearchModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPGlobalSearchModule, never, [typeof i1$2.AXPComponentSlotModule, typeof i1.AXPWorkflowModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPGlobalSearchModule>;
}

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.AXPWorkflowModule], [typeof AXPComparePopupComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPCompareModule>;
}

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

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

/**
 * Validation Rules Module
 *
 * Registers custom validation rules globally using AXValidationModule.forChild.
 *
 * The 'variable-name' validation rule can now be used in entity property definitions:
 *
 * ```typescript
 * validations: [
 *   { rule: 'required' },
 *   { rule: 'variable-name' }
 * ]
 * ```
 */
declare class AXPValidationRulesModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPValidationRulesModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXPValidationRulesModule, never, [typeof i1$3.AXValidationModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXPValidationRulesModule>;
}

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

declare class AXMCommonModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMCommonModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCommonModule, never, [typeof AXPCategoryModule, typeof AXMLockSystemModule, typeof AXPVersionHistoryModule, typeof AXPAuditInfoPluginModule, typeof AXPClonePluginModule, typeof AXPArchivePluginModule, typeof AXPDisablePluginModule, typeof AXPDefaultPluginModule, typeof AXPPrimaryPluginModule, typeof AXPUniqueFieldsPluginModule, typeof AXPNamePluginModule, typeof AXPTitlePluginModule, typeof AXPNotesPluginModule, typeof AXPDescriptionPluginModule, typeof AXPIconPluginModule, typeof AXPColorPluginModule, typeof AXPAvatarPluginModule, typeof AXPGlobalSearchModule, typeof AXPCompareModule, typeof AXPStatusPluginModule, typeof AXPComputedPropertiesModule, typeof AXPValidationRulesModule, typeof i23.AXPWidgetsModule, typeof AXMCommonMiddlewaresModule], 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 const AXPCommonMenuKeys: {
    readonly Home: "Common:Menu:Home";
    readonly Administration: "Common:Menu:Administration";
    readonly Help: "Common:Menu:Help";
    readonly Configuration: "Common:Menu:Configuration";
    readonly Contacts: "Common:Menu:Contacts";
    readonly Platform: "Common:Menu:Platform";
    /** Administration > Content (Promotions, Page Builder, Dashboards) */
    readonly Content: "Common:Menu:Administration:Content";
    /** Administration > Workflows (Workflow Definitions, Instances, Studio, Activities) */
    readonly Workflows: "Common:Menu:Administration:Workflows";
    /** Commerce (Products, Orders, Supplier Products) */
    readonly Commerce: "Common:Menu:Commerce";
    /** Configuration > Meeting (Meeting Types, Meeting Role Types) */
    readonly Meeting: "Common:Menu:Configuration:Meeting";
    /** Organization (Teams, Positions, Employees, Leave - merged with Staff) */
    readonly Organization: "Common:Menu:Organization";
    /** Configuration > Organization (Job Definitions, Employment Types, etc.) */
    readonly OrganizationConfig: "Common:Menu:Configuration:Organization";
    /** Configuration > Help Desk (Issue Types) */
    readonly HelpDeskConfig: "Common:Menu:Configuration:HelpDesk";
    /** Configuration > Document Management (Document Types) */
    readonly DocumentManagementConfig: "Common:Menu:Configuration:DocumentManagement";
    /** Configuration > Forms & Assessments (Question Bank, Questionnaires, Form Templates) */
    readonly FormsAndAssessments: "Common:Menu:Configuration:FormsAndAssessments";
    /** Configuration > Reservation (Types, Statuses, Classes) */
    readonly ReservationConfig: "Common:Menu:Configuration:Reservation";
};

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;
        TagEditor: string;
        CheckBox: string;
        ColorBox: string;
        ColorPalette: string;
        DateTimeBox: string;
        AddressBox: 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;
        MultiSourceSelector: string;
        EntityCategory: string;
        ContactBox: string;
        MetaDataBox: string;
        TemplateBox: string;
        TimeDuration: string;
        DocumentUploader: string;
        MetaSelector: string;
        MetaDataForm: string;
        ColumnFilterSelector: string;
        DataListFilter: string;
        ListEditor: string;
        ConnectedListsEditor: string;
        SkillMatrix: string;
        ResponsibilitiesMatrix: string;
        ProgressBox: string;
        RatePicker: 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: {
        CodeEditor: string;
        QRCode: string;
        schedulerPicker: string;
        Signature: string;
        Map: string;
        Gallery: string;
        Image: string;
        ImageMarker: string;
        Avatar: string;
        FileUploader: string;
        DataList: string;
        ListToolbar: string;
        CronJob: string;
        Status: string;
        WidgetFieldConfigurator: string;
        AnswersViewer: string;
    };
    Templates: {
        Designer: string;
        Template: string;
    };
    Entity: {
        EntityList: string;
    };
    Theme: {
        ThemeColorChooser: string;
        ThemePaletteChooser: string;
        IconChooser: string;
        FontSizeChooser: string;
        FontStyleChooser: string;
    };
};

declare const AXPCommonFeatureKeys: {
    readonly GlobalSearch: "Common:Feature:GlobalSearch";
    readonly AdvancedExport: "Common:Feature:AdvancedExport";
    readonly ActivityLog: "Common:Feature:ActivityLog";
    readonly DataImport: "Common:Feature:DataImport";
    readonly BulkOperations: "Common:Feature:BulkOperations";
    readonly AdvancedFiltering: "Common:Feature:AdvancedFiltering";
    readonly DataSynchronization: "Common:Feature:DataSynchronization";
};

/**
 * Common Module Feature Definition Provider.
 * Provides feature definitions for the Common module.
 */
declare class AXPCommonFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {
    provide(context: AXPFeatureDefinitionProviderContext): Promise<void>;
}

/**
 * Common Module Manifest.
 * Defines module metadata, features, and provider references.
 */
declare const CommonManifest: AXPModuleManifest;

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

declare class AXPGlobalSearchViewModel {
    private settingKeys;
    private searchService;
    private settingsService;
    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>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMUnlockConfirmWorkflowAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMUnlockConfirmWorkflowAction>;
}
declare const AXMUnlockConfirmWorkflow: AXPWorkflow;

/** Options for the disable plugin. */
interface DisablePluginOptions {
    /** Name of the boolean field used for disabled state. Defaults to `'isDisabled'`. */
    fieldName?: string;
}
declare const disablePlugin: AXPEntityActionPlugin;

interface UniqueFieldsPluginOptions {
    /**
     * Field name(s) to enforce uniqueness on.
     * Can be a single field name or an array of field names for composite uniqueness.
     */
    fields: string | string[];
    /**
     * Uniqueness scope:
     * - 'global': Unique across all records
     * - 'tenant': Unique within tenant (requires tenantId field)
     * - 'parent': Unique within parent entity (requires parentField option)
     */
    scope?: 'global' | 'tenant' | 'parent';
    /**
     * Parent field name for parent-scoped uniqueness.
     * Required when scope is 'parent'.
     */
    parentField?: string;
    /**
     * Custom error message template.
     * Use {{fieldTitle}} placeholder for field title.
     * If not provided, uses default message with field title.
     */
    message?: string;
}
/**
 * Unique Fields Plugin
 *
 * Enforces uniqueness constraints on one or more entity fields.
 * Supports single-field and composite (multiple fields) uniqueness.
 *
 * Usage:
 * ```typescript
 * .applyPlugin(uniqueFieldsPlugin, {
 *   fields: 'email',  // Single field
 *   scope: 'global'
 * })
 *
 * .applyPlugin(uniqueFieldsPlugin, {
 *   fields: ['firstName', 'lastName'],  // Composite uniqueness
 *   scope: 'tenant'
 * })
 *
 * .applyPlugin(uniqueFieldsPlugin, {
 *   fields: 'code',
 *   scope: 'parent',
 *   parentField: 'categoryId'
 * })
 * ```
 */
declare const uniqueFieldsPlugin: AXPEntityActionPlugin;

/**
 * Variable Name Validation Pattern
 *
 * Regex pattern that validates variable naming conventions:
 * - Must start with a letter (a-z, A-Z) or underscore (_)
 * - Can contain letters, numbers, underscores (_), and hyphens (-)
 * - No spaces or special characters allowed
 */
declare const VARIABLE_NAME_VALIDATION_PATTERN = "^[a-zA-Z_][a-zA-Z0-9_-]*$";
/**
 * Variable Name Validation Rule Options
 */
interface AXVariableNameValidationRuleOptions extends AXValidationRuleOptions {
    message?: string;
}
/**
 * Variable Name Validation Rule Class
 *
 * Validates that a field value follows variable naming conventions:
 * - Must start with a letter (a-z, A-Z) or underscore (_)
 * - Can contain letters, numbers, underscores (_), and hyphens (-)
 * - No spaces or special characters allowed
 *
 * Usage in entity definitions:
 * ```typescript
 * validations: [
 *   { rule: 'variable-name' }
 * ]
 * ```
 */
declare class VariableNameValidationRule implements AXValidationRule {
    private translationService;
    get name(): string;
    validate(value: any, options?: AXVariableNameValidationRuleOptions): Promise<AXValidationRuleResult>;
    static ɵfac: i0.ɵɵFactoryDeclaration<VariableNameValidationRule, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<VariableNameValidationRule>;
}

declare const statusPlugin: AXPEntityActionPlugin;

/**
 * Comprehensive status management types and predefined statuses
 * This file contains all standard statuses with their transitions and metadata
 */

/**
 * Status configuration for entity status plugin
 */
interface AXPStatusPluginOptions {
    /**
     * Field name for status in entity
     */
    field?: string;
    /**
     * Status definition key (from provider) or direct provider data
     */
    definition?: string | Pick<AXPStatusProvider, 'statuses' | 'transitions' | 'defaultStatus'>;
    /**
     * Generation behaviours for status integration
     */
    generate?: AXPStatusPluginGenerateOptions;
}
/**
 * Get status definition by name from provider
 */
declare function getStatusByName(statusName: string, provider: AXPStatusProvider): AXPStatusDefinition | undefined;
/**
 * Get all possible transitions from a status
 */
declare function getTransitionsFromStatus(fromStatus: string, provider: AXPStatusProvider): AXPStatusTransition[];
/**
 * Get all possible transitions to a status
 */
declare function getTransitionsToStatus(toStatus: string, provider: AXPStatusProvider): AXPStatusTransition[];
/**
 * Check if a transition is valid
 */
declare function isValidTransition(fromStatus: string, toStatus: string, provider: AXPStatusProvider): boolean;
/**
 * Get initial statuses
 */
declare function getInitialStatuses(provider: AXPStatusProvider): AXPStatusDefinition[];
/**
 * Get final statuses
 */
declare function getFinalStatuses(provider: AXPStatusProvider): AXPStatusDefinition[];
/**
 * Get active statuses
 */
declare function getActiveStatuses(provider: AXPStatusProvider): AXPStatusDefinition[];
interface AXPStatusPluginGenerateOptions {
    /**
     * List view generation config
     */
    views?: AXPStatusPluginGenerateViewsOptions;
}
interface AXPStatusPluginGenerateViewsOptions {
    /**
     * Enable view generation. Defaults to true.
     */
    enabled?: boolean;
}

/**
 * Task status provider for task management workflows
 * Provides statuses: Todo, InProgress, InReview, Blocked, Done, Cancelled
 */
declare class TaskStatusProvider extends AXPStatusProvider {
    readonly key = "common.status.task";
    readonly statuses: AXPStatusDefinition[];
    readonly transitions: AXPStatusTransition[];
    readonly defaultStatus = AXPSystemStatusType.Todo;
}

/**
 * Approval status provider for content approval workflows
 * Provides statuses: Draft, PendingReview, Approved, Published, Archived, Rejected
 */
declare class ApprovalStatusProvider extends AXPStatusProvider {
    readonly key = "common.status.approval";
    readonly statuses: AXPStatusDefinition[];
    readonly transitions: AXPStatusTransition[];
    readonly defaultStatus = AXPSystemStatusType.Draft;
}

/**
 * State status provider for entity state management
 * Provides statuses: Active, Inactive, Pending, Completed, Suspended, Failed
 */
declare class StateStatusProvider extends AXPStatusProvider {
    readonly key = "common.status.state";
    readonly statuses: AXPStatusDefinition[];
    readonly transitions: AXPStatusTransition[];
    readonly defaultStatus = AXPSystemStatusType.Pending;
}

/**
 * Configuration for the resource appointment page.
 * Provide via AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG to customize title, description, breadcrumbs, and board options.
 */
interface AXPResourceAppointmentPageConfig {
    /** Page title (translation key e.g. '@module:feature.page-title' or literal). */
    pageTitle: string;
    /** Optional page description (translation key or literal). */
    pageDescription?: string | null;
    /** Optional page icon (e.g. 'fa-light fa-calendar-lines'). */
    pageIcon?: string | null;
    /** Optional breadcrumb items (in addition to default home). */
    breadcrumbs?: AXPBreadcrumbItem[];
    /** Whether to show resource headers in timeline views. Default true. */
    showResourceHeaders?: boolean;
    /** Whether to show appointments that have no resourceId. Default true. */
    showUnassignedAppointments?: boolean;
}
declare const AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG: InjectionToken<AXPResourceAppointmentPageConfig>;

declare class AXPResourceAppointmentPageComponent extends AXPPageLayoutBaseComponent implements OnInit {
    private readonly pageConfig;
    private readonly route;
    /** Active provider name from route param 'provider-name'. */
    protected readonly providerName: i0.WritableSignal<string | undefined>;
    protected get config(): AXPResourceAppointmentPageConfig | null;
    protected get showResourceHeaders(): boolean;
    protected get showUnassignedAppointments(): boolean;
    ngOnInit(): Promise<void>;
    getPageTitle(): Promise<string>;
    getPageDescription(): Promise<string | null>;
    getPageIcon(): string | null;
    getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXPResourceAppointmentPageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXPResourceAppointmentPageComponent, "axp-resource-appointment-page", never, {}, {}, never, never, true, never>;
}

export { AXMCommonModule, AXMLockPopupWorkflow, AXMLockPopupWorkflowAction, AXMMenuProvider, AXMSettingProvider, AXMUnlockConfirmWorkflow, AXMUnlockConfirmWorkflowAction, AXPCommonFeatureDefinitionProvider, AXPCommonFeatureKeys, AXPCommonMenuKeys, AXPDisablePluginModule, AXPGlobalSearchModule, AXPGlobalSearchViewModel, AXPResourceAppointmentPageComponent, AXPStatusPluginModule, AXPUniqueFieldsPluginModule, AXPValidationRulesModule, AXPVersionHistoryModule, AXPWidgetsList, AXP_GLOBAL_SEARCH_CONFIG_TOKEN, AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG, ApprovalStatusProvider, CommonManifest, RootConfig, StateStatusProvider, TaskStatusProvider, VARIABLE_NAME_VALIDATION_PATTERN, VariableNameValidationRule, disablePlugin, getActiveStatuses, getFinalStatuses, getInitialStatuses, getStatusByName, getTransitionsFromStatus, getTransitionsToStatus, isValidTransition, statusPlugin, uniqueFieldsPlugin };
export type { AXPGlobalSearchConfigs, AXPResourceAppointmentPageConfig, AXPStatusPluginGenerateOptions, AXPStatusPluginGenerateViewsOptions, AXPStatusPluginOptions, AXVariableNameValidationRuleOptions, DisablePluginOptions, UniqueFieldsPluginOptions };
