import { ElementRef, EventEmitter } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { IManagedObject } from '@c8y/client';
import { ActionControl, AlertService, C8yStepper, GainsightService, Pagination, Permissions } from '@c8y/ngx-components';
import { Subscription } from 'rxjs';
import { SubAssetsService } from '../sub-assets.service';
import { AddGroupService } from './add-group.service';
import * as i0 from "@angular/core";
export declare class AddGroupComponent {
    private fb;
    private addGroupService;
    private alert;
    private subAssetsService;
    private gainsightService;
    private permissionsService;
    currentGroupId: string;
    refresh: EventEmitter<void>;
    onDeviceQueryStringChange: EventEmitter<string>;
    onCancel: EventEmitter<void>;
    stepper: C8yStepper;
    nameInputRef: ElementRef;
    deviceQueryStringOutput: string;
    showAssignChildDevices: boolean;
    showChildrenForDevice: IManagedObject;
    formGroupStepOne: FormGroup;
    actionControls: ActionControl[];
    pendingStatus: boolean;
    pagination: Pagination;
    selected: string[];
    selectedChildDevices: string[];
    subscription: Subscription;
    canCreateGroup: boolean;
    canAssignDevice: boolean;
    PRODUCT_EXPERIENCE: {
        readonly EVENT: "subAssets";
        readonly DELETE_ASSET: {
            readonly COMPONENTS: {
                readonly DELETE_ASSETS_MODAL: "delete-assets-modal";
            };
            readonly ACTIONS: {
                readonly CASCADE_DELETE: "cascadeDelete";
                readonly DELETE_DEVICE_OWNER: "deleteDeviceOwner";
            };
            readonly RESULTS: {
                readonly CANCELED: "canceled";
                readonly DELETED: "deleted";
            };
        };
        readonly ASSIGN_DEVICES: {
            readonly COMPONENTS: {
                readonly ASSIGN_DEVICES: "assign-devices";
            };
            readonly ACTIONS: {
                readonly ASSIGN: "assign";
                readonly CANCEL: "cancel";
                readonly DISPLAY_CHILD_DEVICES: "displayChildDevices";
            };
        };
        readonly UNASSIGN_MODAL: {
            readonly COMPONENTS: {
                readonly UNASSIGN_MODAL: "unassign-modal";
            };
            readonly RESULTS: {
                readonly ASSET_UNASSIGNED: "asset-unassigned";
            };
            readonly ACTIONS: {
                readonly CANCEL: "cancel";
            };
        };
        readonly GROUP_INFO: {
            readonly COMPONENTS: {
                readonly GROUP_INFO: "group-info";
            };
            readonly ACTIONS: {
                readonly EDIT: "edit";
            };
            readonly RESULTS: {
                readonly EDIT_SAVED: "edit-saved";
            };
            readonly PROPERTIES: {
                readonly NAME: "name";
                readonly DESCRIPTION: "description";
            };
        };
        readonly ADD_GROUP: {
            readonly COMPONENTS: {
                readonly ADD_GROUP: "add-group";
            };
            readonly ACTIONS: {
                readonly ADD: "add";
            };
            readonly RESULTS: {
                readonly ADD_SUCCESS: "group-added";
            };
        };
    };
    readonly ITEMS_SELECT_LIMIT: number;
    readonly btnLabels: {
        next: "Next";
        cancel: "Cancel";
        create: "Create";
    };
    private nameInput;
    constructor(fb: FormBuilder, addGroupService: AddGroupService, alert: AlertService, subAssetsService: SubAssetsService, gainsightService: GainsightService, permissionsService: Permissions);
    onEnterKeyDown(_event: KeyboardEvent): void;
    ngOnInit(): Promise<void>;
    setActionControls(): void;
    ngAfterViewInit(): void;
    createGroup(): Promise<void>;
    onSelected(selectedDevicesIDs: string[]): void;
    onSelectedChildDevices(selectedDevicesIDs: string[]): void;
    resetStepper(): void;
    ngOnDestroy(): void;
    private isGroupDetailsStep;
    private isAssignDeviceStep;
    private setFocusOnNameInput;
    private selectChildren;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddGroupComponent, "c8y-add-group", never, { "currentGroupId": { "alias": "currentGroupId"; "required": false; }; "refresh": { "alias": "refresh"; "required": false; }; }, { "onDeviceQueryStringChange": "onDeviceQueryStringChange"; "onCancel": "onCancel"; }, never, never, false, never>;
}
//# sourceMappingURL=add-group.component.d.ts.map