import { EventEmitter, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { IManagedObject, SmartGroupsService } from '@c8y/client';
import { ActionControl, BulkActionControl, Column, DataGridComponent, DataSourceModifier, DisplayOptions, GridConfigContextProvider, Pagination, ServerSideDataCallback, ServerSideDataResult } from '@c8y/ngx-components';
import { AssetNodeService } from '@c8y/ngx-components/assets-navigator';
import { DeviceListExtensionService } from '@c8y/ngx-components/device-list';
import { BsModalService } from 'ngx-bootstrap/modal';
import { SubAssetsGridConfigContext } from './sub-assets-grid-configuration-strategy.service';
import { SubAssetsService } from './sub-assets.service';
import * as i0 from "@angular/core";
export declare class SubAssetsGridComponent implements OnInit, OnDestroy, GridConfigContextProvider {
    subAssetsGridService: SubAssetsService;
    private bsModalService;
    private smartGroupsService;
    private deviceListExtensionService;
    private assetNodeService;
    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";
            };
        };
    };
    parentGroup: IManagedObject;
    refresh: EventEmitter<void>;
    title: string;
    emptyStateText: string;
    loadingItemsLabel: string;
    /** The name of the key where columns configuration will be stored. */
    columnsConfigKey: string;
    get columns(): Column[];
    set columns(value: Column[]);
    set _pagination(value: Pagination);
    set _actionControls(value: ActionControl[]);
    selectable: boolean;
    baseQuery: object;
    set _bulkActionControls(value: BulkActionControl[]);
    filterable: boolean;
    sortable: boolean;
    onColumnsChange: EventEmitter<Column[]>;
    itemsSelect: EventEmitter<string[]>;
    pagination: Pagination;
    showCounterWarning: boolean;
    actionControls: ActionControl[];
    bulkActionControls: BulkActionControl[];
    serverSideDataCallback: ServerSideDataCallback;
    dataGrid: DataGridComponent;
    displayOptions: DisplayOptions;
    showSearch: boolean;
    noResultsMessage: "No matching items.";
    noDataMessage: "No items to display.";
    noResultsSubtitle: "Refine your search terms or check your spelling.";
    private _columns;
    private destroyed$;
    get isRootGroup(): boolean;
    get getInfiniteScrollMode(): string;
    set _displayOptions(displayOptions: any);
    constructor(subAssetsGridService: SubAssetsService, bsModalService: BsModalService, smartGroupsService: SmartGroupsService, deviceListExtensionService: DeviceListExtensionService, assetNodeService: AssetNodeService);
    getGridConfigContext(): SubAssetsGridConfigContext;
    ngOnInit(): void;
    setActionControls(): void;
    onUnassignAsset(asset: IManagedObject, parentRef: IManagedObject): void;
    onDeleteAsset(asset: IManagedObject, parentRef: IManagedObject): Promise<void>;
    ngOnChanges(changes: SimpleChanges): void;
    trackByName(_index: any, column: Column): string;
    onReload(): void;
    onDataSourceModifier(dataSourceModifier: DataSourceModifier): Promise<ServerSideDataResult>;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SubAssetsGridComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SubAssetsGridComponent, "c8y-sub-assets-grid", never, { "parentGroup": { "alias": "parent-group"; "required": false; }; "refresh": { "alias": "refresh"; "required": false; }; "title": { "alias": "title"; "required": false; }; "emptyStateText": { "alias": "emptyStateText"; "required": false; }; "loadingItemsLabel": { "alias": "loadingItemsLabel"; "required": false; }; "columnsConfigKey": { "alias": "columnsConfigKey"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "_pagination": { "alias": "pagination"; "required": false; }; "_actionControls": { "alias": "actionControls"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "baseQuery": { "alias": "baseQuery"; "required": false; }; "_bulkActionControls": { "alias": "bulkActionControls"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "_displayOptions": { "alias": "displayOptions"; "required": false; }; }, { "onColumnsChange": "onColumnsChange"; "itemsSelect": "itemsSelect"; }, never, never, false, never>;
}
//# sourceMappingURL=sub-assets-grid.component.d.ts.map