import * as i0 from '@angular/core';
import { InjectionToken } from '@angular/core';
import { NavigatorNode, NavigatorNodeFactory, ModalService, AlertService } from '@c8y/ngx-components';
import { OperationStatus, OperationBulkGeneralStatus, OperationService, IOperation } from '@c8y/client';
import { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';

declare const DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG: InjectionToken<Partial<NavigatorNode>>;
declare class OperationsNavigationFactory implements NavigatorNodeFactory {
    private config;
    navs: NavigatorNode[];
    constructor(config: NavigatorNode);
    get(): Promise<NavigatorNode[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationsNavigationFactory, [{ optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<OperationsNavigationFactory>;
}

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

interface OperationStatusOption {
    label: string;
    status?: OperationStatus;
    generalStatuses?: OperationBulkGeneralStatus[];
    icon?: SupportedIconsSuggestions;
    styleClass?: string;
}

declare const OPERATION_STATUS_LABELS: {
    PENDING: "Pending";
    EXECUTING: "Executing";
    FAILED: "Failed";
    SUCCESSFUL: "Successful";
};
type OperationStatusOptionsMapShared = {
    [key in keyof typeof OperationStatus]?: OperationStatusOption;
};
declare const OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared;
declare const CLEAN_KEYS: string[];
declare const CLEAN_KEYS_UPDATE: string[];
declare const RESERVED_KEYS: string[];
declare const STANDARD_KEYS: {
    failureReason: "Failure reason";
    description: "Description";
    status: "Status";
};

declare class OperationsService {
    private operationService;
    private modal;
    private alertService;
    constructor(operationService: OperationService, modal: ModalService, alertService: AlertService);
    getStandardKeys(operation: IOperation): any;
    getNonStandardKeys(operation: IOperation, excluding?: string[]): any;
    cancel(operation: Partial<IOperation>): Promise<void>;
    private getKeys;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<OperationsService>;
}

export { CLEAN_KEYS, CLEAN_KEYS_UPDATE, DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG, OPERATION_STATUS_LABELS, OPERATION_STATUS_OPTIONS_MAP, OperationsNavigationFactory, OperationsService, OperationsSharedModule, RESERVED_KEYS, STANDARD_KEYS };
export type { OperationStatusOption, OperationStatusOptionsMapShared };
//# sourceMappingURL=index.d.ts.map
