import { ActivatedRouteSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { Tab } from '@c8y/ngx-components';
import * as i1 from '@c8y/ngx-components/context-dashboard';
import { ContextDashboardService } from '@c8y/ngx-components/context-dashboard';
import * as i0 from '@angular/core';

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

interface DeviceDashboardGuardOptions {
    /**
     * When `true`, only dashboards that explicitly list the current app key in
     * `c8y_AppliedToApplications` are shown. Legacy dashboards that have no
     * `c8y_AppliedToApplications` fragment are excluded.
     * Defaults to `false` (legacy dashboards are included).
     */
    strictAppFilter?: boolean;
}
/**
 * Functional guard factory for device context dashboards.
 *
 * @example
 * // Standard usage – equivalent to DeviceDashboardGuard
 * canActivate: [deviceDashboardGuard()]
 *
 * @example
 * // App-strict mode – only dashboards bound to the app using the factory are shown
 * canActivate: [deviceDashboardGuard({ strictAppFilter: true })]
 */
declare function deviceDashboardGuard(options?: DeviceDashboardGuardOptions): (route: ActivatedRouteSnapshot) => Observable<boolean | Tab[]>;

declare class ViewDeviceContextDashboardModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ViewDeviceContextDashboardModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ViewDeviceContextDashboardModule, never, [typeof i1.ContextDashboardModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ViewDeviceContextDashboardModule>;
}

export { DeviceDashboardGuard, ViewDeviceContextDashboardModule, deviceDashboardGuard };
export type { DeviceDashboardGuardOptions };
//# sourceMappingURL=index.d.ts.map
