import { Router } from '@angular/router';
import * as i1 from '@c8y/ngx-components';
import { TabFactory, Tab } from '@c8y/ngx-components';
import * as i0 from '@angular/core';
import * as i2 from '@c8y/ngx-components/operations/bulk-operation-from-single';
import * as i3 from '@c8y/ngx-components/operations/bulk-operations-list';
import * as i4 from '@c8y/ngx-components/operations/bulk-operations-service';
import * as i5 from '@c8y/ngx-components/operations/bulk-operations-stepper-container';
import * as i6 from '@c8y/ngx-components/operations/stepper-bulk-type-configuration';
import * as i7 from '@c8y/ngx-components/operations/stepper-bulk-type-firmware';
import * as i8 from '@c8y/ngx-components/operations/stepper-bulk-type-software';
import * as i9 from '@c8y/ngx-components/operations/stepper-bulk-type-device-profile';

declare class BulkOperationsTabsFactory implements TabFactory {
    router: Router;
    constructor(router: Router);
    get(): Tab[];
    static ɵfac: i0.ɵɵFactoryDeclaration<BulkOperationsTabsFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<BulkOperationsTabsFactory>;
}

/**
 * This module sets up the 'Device control' view. By importing it in your custom application you will have:
 * - a 'Device control' tab in device details view
 * - a 'Device control' entry in the 'Overviews' section of navigator
 * - 'Bulk operations' tab on the 'Device control' page
 * - list view of existing bulk operations with expandable details and options to filter
 * - guided stepper dialogs to schedule new bulk operations of supported types
 * (Configuration update, Firmware update, Software update, Apply device profile).
 *
 * Additionaly you can use the modules imported by {@link OperationsModule} separately to achieve
 * the results you wish to have in your application, e.g.:
 * - import {@link BulkOperationsListModule} and {@link BulkOperationsServiceModule}
 * to have an overview of existing bulk operation with expandable details
 * - additionaly import {@link BulkOperationsStepperContainerModule} and any of the existing
 * `StepperBulkType*Module` modules ({@link StepperBulkTypeConfigurationModule},
 * {@link StepperBulkTypeFirmwareModule}, {@link StepperBulkTypeSoftwareModule},
 * {@link StepperBulkTypeDeviceProfileModule}) to have the option
 * to create new bulk operation in a guided stepper dialog.
 *
 * ```typescript
 * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';
 * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';
 *
 * @NgModule({
 *   imports: [
 *     [...]
 *     BulkOperationsServiceModule,
 *     BulkOperationsListModule
 *   ],
 *   [...]
 * })
 * export class CustomOperationsModule {}```
 * respectively
 * ```typescript
 * import { BulkOperationsStepperContainerModule } from '@c8y/ngx-components/operations/bulk-operations-stepper-container';
 * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';
 * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';
 * import { StepperBulkTypeSoftwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-software';
 *
 * @NgModule({
 *   imports: [
 *     [...]
 *     BulkOperationsServiceModule,
 *     BulkOperationsListModule,
 *     BulkOperationsStepperContainerModule,
 *     StepperBulkTypeSoftwareModule
 *   ],
 *   [...]
 * })
 * export class CustomOperationsModule {}```
 * You can provide your own bulk operation stepper by registering a component via the `hookListBulkType`:
 *
 * ```typescript
 * import {
 *   hookListBulkType,
 *   baseUrl
 * } from '@c8y/ngx-components/operations/bulk-operations-service';
 *
 * [...]
 *
 * providers: [
 *   hookListBulkType({
 *     type: 'my-bulk-op-type',
 *     c8yIcon: 'c8y-tools',
 *     name: 'My bulk op type',
 *     path: `${baseUrl}my-type`,
 *     component: StepperMyBulkTypeComponent,
 *     fragments: ['c8y_MyType'],
 *     selected: false
 *   })
 * ]```
 */
declare class OperationsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<OperationsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<OperationsModule, never, [typeof i1.CoreModule, typeof i2.BulkOperationFromSingleModule, typeof i3.BulkOperationsListModule, typeof i4.BulkOperationsServiceModule, typeof i5.BulkOperationsStepperContainerModule, typeof i6.StepperBulkTypeConfigurationModule, typeof i7.StepperBulkTypeFirmwareModule, typeof i8.StepperBulkTypeSoftwareModule, typeof i9.StepperBulkTypeDeviceProfileModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<OperationsModule>;
}

export { BulkOperationsTabsFactory, OperationsModule };
//# sourceMappingURL=index.d.ts.map
