import { EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { IManagedObject, InventoryService, SmartGroupsService } from '@c8y/client';
import { AlertService, AssetTypesRealtimeService, Column, ModalService } from '@c8y/ngx-components';
import { AssetNodeService } from '@c8y/ngx-components/assets-navigator';
import { DeviceListExtensionService } from '@c8y/ngx-components/device-list';
import { SubAssetsConfig } from './sub-assets.model';
import { SubAssetsService } from './sub-assets.service';
import * as i0 from "@angular/core";
export declare class GroupInfoComponent implements OnDestroy, OnChanges {
    private inventory;
    private subAssetsService;
    private smartGroupsService;
    private alertService;
    private modalService;
    private assetNodeService;
    private assetType;
    private deviceListExtensionService;
    moduleConfig: SubAssetsConfig;
    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";
            };
        };
    };
    group: IManagedObject;
    groupChange: EventEmitter<IManagedObject>;
    canEdit: boolean;
    groupIcon: string;
    smartGroupFilter: string;
    label: string;
    columnsWithFilter: Column[];
    groupInfoModel: {
        name: string;
        c8y_Notes: string;
    };
    filterMsg: "Smart groups are groups dynamically constructed based on filtering criteria.";
    private readonly GROUP_UPDATED_MSG;
    private allDevicesGridColumns;
    private destroyed$;
    constructor(inventory: InventoryService, subAssetsService: SubAssetsService, smartGroupsService: SmartGroupsService, alertService: AlertService, modalService: ModalService, assetNodeService: AssetNodeService, assetType: AssetTypesRealtimeService, deviceListExtensionService: DeviceListExtensionService, moduleConfig: SubAssetsConfig);
    ngOnChanges(changes: SimpleChanges): Promise<void>;
    isSmartGroup(): boolean;
    update(partialGroup: Partial<IManagedObject>): Promise<void>;
    ngOnDestroy(): void;
    private withPropsFromGridColumn;
    private updateGroup;
    private updateSmartGroup;
    private isQueryExecutable;
    static ɵfac: i0.ɵɵFactoryDeclaration<GroupInfoComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GroupInfoComponent, "c8y-group-info", never, { "group": { "alias": "group"; "required": false; }; }, { "groupChange": "groupChange"; }, never, never, false, never>;
}
//# sourceMappingURL=group-info.component.d.ts.map