import * as i0 from '@angular/core';
import { EventEmitter } from '@angular/core';
import { CdkStep } from '@angular/cdk/stepper';
import { IManagedObject, IResultList } from '@c8y/client';
import { C8yStepper } from '@c8y/ngx-components';
import { BaseStepperComponent } from '@c8y/ngx-components/operations/bulk-operation-stepper';
import { BulkOperationType, OperationDetails } from '@c8y/ngx-components/operations/bulk-operations-service';
import { BehaviorSubject, Observable } from 'rxjs';
import { TranslateService } from '@ngx-translate/core';
import { DeviceProfileService } from '@c8y/ngx-components/device-profile';

declare class StepperBulkTypeDeviceProfileComponent extends BaseStepperComponent {
    readonly type: BulkOperationType;
    selectedDeviceProfile: IManagedObject;
    goToConfirmSelection($event: {
        stepper: C8yStepper;
        step: CdkStep;
    }): void;
    onDeviceProfileSelected(selectedItem: any): void;
    protected retrieveOperationPrototype(): OperationDetails;
    static ɵfac: i0.ɵɵFactoryDeclaration<StepperBulkTypeDeviceProfileComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<StepperBulkTypeDeviceProfileComponent, "c8y-stepper-bulk-type-device-profile", never, {}, {}, never, never, true, never>;
}

declare class SelectDeviceProfileStepComponent {
    private deviceProfileService;
    private translate;
    deviceProfile: EventEmitter<IManagedObject>;
    textFilter$: BehaviorSubject<string>;
    deviceType$: BehaviorSubject<string>;
    readonly DEVICE_TYPE_NOT_DEFINED: "Device type not defined";
    deviceTypes: any[];
    selectedDeviceType: {
        name: string;
    };
    deviceProfile$: Observable<IResultList<IManagedObject>>;
    private deviceTypeSubscription;
    constructor(deviceProfileService: DeviceProfileService, translate: TranslateService);
    loadDeviceTypes(): void;
    ngOnDestroy(): void;
    selectDeviceProfile(deviceProfile: IManagedObject): void;
    getDeviceTypeTitle(deviceProfile: IManagedObject): string;
    private getDeviceProfiles;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectDeviceProfileStepComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectDeviceProfileStepComponent, "c8y-select-device-profile-step", never, {}, { "deviceProfile": "deviceProfile"; }, never, never, true, never>;
}

declare class ConfirmDeviceProfileSelectionStepComponent {
    private translate;
    selectedDeviceProfile: IManagedObject;
    readonly DEVICE_TYPE_NOT_DEFINED: "Device type not defined";
    constructor(translate: TranslateService);
    get softwares(): any;
    get configurations(): any;
    getDeviceTypeTitle(deviceProfile: IManagedObject): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDeviceProfileSelectionStepComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDeviceProfileSelectionStepComponent, "c8y-confirm-device-profile-selection-step", never, { "selectedDeviceProfile": { "alias": "selectedDeviceProfile"; "required": false; }; }, {}, never, never, true, never>;
}

/** Module for the 'Apply device profile' operation type stepper */
declare class StepperBulkTypeDeviceProfileModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<StepperBulkTypeDeviceProfileModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<StepperBulkTypeDeviceProfileModule, never, [typeof StepperBulkTypeDeviceProfileComponent, typeof SelectDeviceProfileStepComponent, typeof ConfirmDeviceProfileSelectionStepComponent], [typeof StepperBulkTypeDeviceProfileComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<StepperBulkTypeDeviceProfileModule>;
}

export { ConfirmDeviceProfileSelectionStepComponent, SelectDeviceProfileStepComponent, StepperBulkTypeDeviceProfileComponent, StepperBulkTypeDeviceProfileModule };
//# sourceMappingURL=index.d.ts.map
