import * as i0 from '@angular/core';
import { OperationService, IOperation } from '@c8y/client';
import { ProductExperienceEventSource, ProductExperienceEvent } from '@c8y/ngx-components';
import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';
import { OperationsListService } from '@c8y/ngx-components/operations/operations-list';

declare class OperationDetailsService {
    private operationService;
    private modalService;
    constructor(operationService: OperationService, modalService: BsModalService);
    /**
     * Opens a modal window with the details of given single operation.
     * @param operationOrOperationId Operation's object or id.
     * @param options Additional options:
     * - `collapsed`: boolean - whether the details pane should be initially collapsed
     * - `readOnly`: boolean - whether the details should be displayed in read-only mode
     */
    openDetails(operationOrOperationId: IOperation | string | number, options?: {
        collapsed?: boolean;
        readOnly?: boolean;
    }): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationDetailsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<OperationDetailsService>;
}

/**
 * Operation details component displays a single operation's status, description and creationTime.
 *
 * ```html
 * <c8y-operation-details [operation]="operation"></c8y-operation-details>
 * ```
 */
declare class OperationDetailsComponent implements ProductExperienceEventSource {
    private operationDetailsService;
    ACTIONS: {
        readonly FILTER: "filter";
        readonly OPEN_OPERATION_DETAILS: "openOperationDetails";
        readonly RETRY: "retry";
    };
    operation: IOperation;
    statusIcons: object;
    statusClasses: object;
    productExperienceEvent: ProductExperienceEvent;
    constructor(operationDetailsService: OperationDetailsService);
    ngOnInit(): void;
    openDetails(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationDetailsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OperationDetailsComponent, "c8y-operation-details", never, { "operation": { "alias": "operation"; "required": false; }; }, {}, never, never, true, never>;
}

/**
 * This module allows to display details of a single operation in a modal.
 */
declare class OperationDetailsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationDetailsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<OperationDetailsModule, never, [typeof OperationDetailsComponent], [typeof OperationDetailsComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<OperationDetailsModule>;
}

declare class OperationDetailsModalComponent {
    modalRef: BsModalRef;
    private operationsListService;
    operation: Partial<IOperation>;
    collapsed: boolean;
    readOnly: boolean;
    isSmartRulesMicroserviceAvailable: boolean;
    constructor(modalRef: BsModalRef, operationsListService: OperationsListService);
    ngOnInit(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationDetailsModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OperationDetailsModalComponent, "c8y-operation-details-modal", never, { "operation": { "alias": "operation"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, {}, never, never, true, never>;
}

export { OperationDetailsComponent, OperationDetailsModalComponent, OperationDetailsModule, OperationDetailsService };
//# sourceMappingURL=index.d.ts.map
