import { AXPMenuProvider, AXPMenuProviderContext, AXPCommandActionCallback } from '@acorex/platform/common';
import * as i0 from '@angular/core';
import * as i1$1 from '@acorex/modules/calendar-management';
import * as i1 from '@acorex/platform/workflow';
import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
import * as i2 from '@acorex/platform/layout/widget-core';
import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';

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

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

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

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

/**
 * Action to show document distribution popup
 */
declare class AXMCommonDistributionPopupAction extends AXPWorkflowAction {
    private translationService;
    private readonly layoutBuilder;
    execute(context: AXPWorkflowContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMCommonDistributionPopupAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMCommonDistributionPopupAction>;
}
/**
 * Action to create distribution records and update document status
 */
declare class AXMCommonCreateDistributionRecordsAction extends AXPWorkflowAction {
    private readonly commandExecutor;
    execute(context: AXPWorkflowContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMCommonCreateDistributionRecordsAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMCommonCreateDistributionRecordsAction>;
}
/**
 * Workflow for distributing documents to users
 */
declare const AXMCommonDistributionWorkflow: AXPWorkflow;

interface AXPDistributionPluginOptions {
    hasVersioning?: boolean;
}
declare const distributionPlugin: AXPEntityActionPlugin;

/**
 * Action to show document distribution popup
 */
declare class AXMSignPopupAction extends AXPWorkflowAction {
    private translationService;
    private readonly layoutBuilder;
    private readonly injector;
    execute(context: AXPWorkflowContext): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMSignPopupAction, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXMSignPopupAction>;
}
/**
 * Workflow for distributing documents to users
 */
declare const AXMSignWorkflow: AXPWorkflow;

interface AXMSignPluginOptions {
    viewType: 'checkBox' | 'sign' | 'none';
    checkBoxLabel?: string;
    command: AXPCommandActionCallback;
}
declare const signPlugin: AXPEntityActionPlugin;

export { AXMCommonCreateDistributionRecordsAction, AXMCommonDistributionPopupAction, AXMCommonDistributionWorkflow, AXMMenuProvider, AXMSignPluginModule, AXMSignPopupAction, AXMSignWorkflow, AXMWorkflowManagementModule, AXPDistributionPluginModule, distributionPlugin, signPlugin };
export type { AXMSignPluginOptions, AXPDistributionPluginOptions };
