import * as i0 from '@angular/core';
import { OnInit } from '@angular/core';
import * as i1 from '@c8y/ngx-components';
import { NavigatorService, FilterInputComponent, ModalService, AlertService, Permissions, GainsightService, Tab } from '@c8y/ngx-components';
import * as i2 from '@c8y/ngx-components/context-dashboard';
import { ContextDashboardService } from '@c8y/ngx-components/context-dashboard';
import * as i3 from 'ngx-bootstrap/tooltip';
import * as i4 from '@angular/router';
import { ActivatedRouteSnapshot } from '@angular/router';
import * as i5 from 'ngx-bootstrap/popover';
import { BehaviorSubject, Observable } from 'rxjs';
import * as _c8y_client from '@c8y/client';
import { InventoryService, QueryObjectRoot, IManagedObject, IResultList } from '@c8y/client';
import { TranslateService } from '@ngx-translate/core';

declare class ReportDashboardService {
    private inventoryService;
    private navigatorService;
    private queriesUtil;
    constructor(inventoryService: InventoryService, navigatorService: NavigatorService);
    listReports(options?: {
        filter?: QueryObjectRoot;
        pageSize?: number;
    }): Promise<_c8y_client.IResultList<IManagedObject>>;
    removeNavigatorNode(report: IManagedObject): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReportDashboardService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ReportDashboardService>;
}

declare class ReportDashboardListComponent implements OnInit {
    private inventoryService;
    private contextDashboardService;
    private translateService;
    private modal;
    private alertService;
    private reportDashboardService;
    private permissions;
    private gainsightService;
    PRODUCT_EXPERIENCE: {
        readonly DASHBOARD: {
            readonly EVENTS: {
                readonly DASHBOARDS: "dashboards";
                readonly REPORTS: "reports";
                readonly DASHBOARD_TEMPLATE: "dashboardTemplate";
            };
            readonly COMPONENTS: {
                readonly DASHBOARD_VIEW: "context-dashboard";
                readonly DASHBOARD_AVAILABILITY: "dashboard-availability";
                readonly REPORTS_LIST: "report-dashboard-list";
                readonly ADD_REPORT: "report-dashboard-list";
                readonly ADD_DASHBOARD: "add-dashboard";
                readonly DELETE_DASHBOARD: "context-dashboard";
                readonly TYPED_DASHBOARD_SETTINGS: "typed-dashboard-settings";
            };
            readonly CONTEXT: {
                readonly REPORT: "report";
                readonly DEVICE: "device";
                readonly ASSET: "asset";
                readonly GROUP: "group";
            };
            readonly ACTIONS: {
                readonly APPLY_GLOBAL_ROLES_CHANGES: "applyGlobalRolesChanges";
                readonly DELETE: "delete";
                readonly LOAD: "load";
                readonly CREATE: "create";
                readonly ADD_REPORT: "addReport";
                readonly DUPLICATE_AS_REGULAR_DASHBOARD: "duplicateAsRegularDashboard";
            };
        };
    };
    filter: FilterInputComponent;
    textFilter$: BehaviorSubject<string>;
    reload$: BehaviorSubject<void>;
    reloading: boolean;
    reports$: Observable<IResultList<IManagedObject>>;
    canAddReport: boolean;
    private readonly DELETED_SUCCESS_MSG;
    constructor(inventoryService: InventoryService, contextDashboardService: ContextDashboardService, translateService: TranslateService, modal: ModalService, alertService: AlertService, reportDashboardService: ReportDashboardService, permissions: Permissions, gainsightService: GainsightService);
    ngOnInit(): void;
    loadReports(partialName?: string): Promise<IResultList<IManagedObject>>;
    delete(report: IManagedObject): Promise<void>;
    update(report: IManagedObject): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReportDashboardListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ReportDashboardListComponent, "c8y-report-dashboard-list", never, {}, {}, never, never, true, never>;
}

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

declare class ReportDashboardNavigationFactory {
    private navigatorService;
    private reportDashboardService;
    loaded: boolean;
    constructor(navigatorService: NavigatorService, reportDashboardService: ReportDashboardService);
    get(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReportDashboardNavigationFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ReportDashboardNavigationFactory>;
}

declare class ReportDashboardGuard {
    private contextDashboardService;
    constructor(contextDashboardService: ContextDashboardService);
    canActivate(route: ActivatedRouteSnapshot): Observable<boolean | Tab[]>;
    createDashboardIfNotExist(reportId: any): Promise<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReportDashboardGuard, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ReportDashboardGuard>;
}

export { ReportDashboardGuard, ReportDashboardModule, ReportDashboardNavigationFactory, ReportDashboardService };
//# sourceMappingURL=index.d.ts.map
