import * as rxjs from 'rxjs';
import { Observable } from 'rxjs';
import { SmartGroupsService } from '@c8y/client';
import * as i1 from '@c8y/ngx-components';
import { AlertService, ExtensionFactory, Column, ExtensionPointWithoutStateForPlugins, PluginsResolveService, GenericHookType, GenericHookOptions, NavigatorNodeFactory, NavigatorNode, GridConfigContextProvider, UserPreferencesGridConfigContext, BreadcrumbFactory, Breadcrumb } from '@c8y/ngx-components';
import * as i2 from '@c8y/ngx-components/device-grid';
import { DeviceGridService } from '@c8y/ngx-components/device-grid';
import { TranslateService } from '@ngx-translate/core';
import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
import * as i0 from '@angular/core';
import { Injector } from '@angular/core';
import * as i5 from '@angular/router';
import { Router, ActivatedRoute } from '@angular/router';
import * as i3 from 'ngx-bootstrap/popover';
import * as i4 from 'ngx-bootstrap/tooltip';

declare class AddSmartGroupComponent {
    private modal;
    private smartGroupsService;
    private deviceGridService;
    private alert;
    private translateService;
    smartGroup: {
        name: string;
        type: string;
        c8y_IsDynamicGroup: {};
    };
    configKey: string;
    deviceQuery: string;
    constructor(modal: BsModalRef, smartGroupsService: SmartGroupsService, deviceGridService: DeviceGridService, alert: AlertService, translateService: TranslateService);
    create(): rxjs.Subscription;
    close(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddSmartGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddSmartGroupComponent, "c8y-add-smart-group", never, {}, {}, never, never, true, never>;
}

type DeviceListColumnsFactory = ExtensionFactory<Column>;
/**
 * A hook to override the default device grid columns configuration in `c8y-device-list` component.
 */
declare function hookDeviceListColumns(columns: GenericHookType<Column>, options?: Partial<GenericHookOptions>): i0.ValueProvider | i0.ClassProvider | i0.ExistingProvider;
/**
 * A service defining device list column extension options.
 */
declare class DeviceListExtensionService extends ExtensionPointWithoutStateForPlugins<Column> {
    private router;
    private deviceGridService;
    constructor(rootInjector: Injector, router: Router, plugins: PluginsResolveService, deviceGridService: DeviceGridService);
    protected setupItemsObservable(): Observable<Column[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DeviceListExtensionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DeviceListExtensionService>;
}

declare class DeviceListNavigationFactory implements NavigatorNodeFactory {
    nav: NavigatorNode;
    get(): Promise<NavigatorNode>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DeviceListNavigationFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DeviceListNavigationFactory>;
}

declare class DeviceListComponent implements GridConfigContextProvider {
    protected deviceGridService: DeviceGridService;
    private bsModalService;
    readonly GRID_CONFIG_KEY = "device-grid-all";
    count$: Promise<number>;
    columns$: Observable<Column[]>;
    deviceQueryStringOutput: string;
    constructor(deviceGridService: DeviceGridService, bsModalService: BsModalService, deviceListExtensionService: DeviceListExtensionService);
    getGridConfigContext(): UserPreferencesGridConfigContext;
    createSmartGroup(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DeviceListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DeviceListComponent, "c8y-device-list", never, {}, {}, never, never, true, never>;
}

declare class DeviceListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DeviceListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DeviceListModule, never, [typeof i1.CoreModule, typeof i1.CommonModule, typeof i2.DeviceGridModule, typeof i3.PopoverModule, typeof i4.TooltipModule, typeof i5.RouterModule, typeof DeviceListComponent, typeof AddSmartGroupComponent], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DeviceListModule>;
}

declare class DevicesBreadcrumbFactory implements BreadcrumbFactory {
    private contextRouteService;
    get(route: ActivatedRoute): Promise<Breadcrumb>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DevicesBreadcrumbFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DevicesBreadcrumbFactory>;
}

export { AddSmartGroupComponent, DeviceListComponent, DeviceListExtensionService, DeviceListModule, DeviceListNavigationFactory, DevicesBreadcrumbFactory, hookDeviceListColumns };
export type { DeviceListColumnsFactory };
//# sourceMappingURL=index.d.ts.map
