import { Observable } from 'rxjs';
import * as i0 from '@angular/core';
import { IManagedObject } from '@c8y/client';
import { DatapointsGraphWidgetConfig } from '@c8y/ngx-components/echart';

declare function canActivateDatapointExplorer(): Observable<boolean>;
declare class DatapointExplorerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DatapointExplorerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DatapointExplorerModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DatapointExplorerModule>;
}

interface DataExplorerUrlConfig {
    datapoints?: BaseDatapointConfig[];
    alarmsEventsConfigs?: BaseAlarmEventConfig[];
    dateFrom?: Date | string | null;
    dateTo?: Date | string | null;
    [key: string]: any;
}
interface BaseDatapointConfig {
    fragment: string;
    series: string;
    __target?: {
        id?: string;
        [key: string]: any;
    };
    __template?: string;
    [key: string]: any;
}
interface BaseAlarmEventConfig {
    timelineType: string;
    label: string;
    filters: {
        type: string;
        [key: string]: any;
    };
    __target?: {
        id?: string;
        [key: string]: any;
    };
    [key: string]: any;
}

declare class DataExplorerService {
    private readonly inventory;
    private readonly contextDashboardService;
    private readonly workspaceConfigurationService;
    private readonly moChunkLoader;
    private readonly datapointSyncService;
    private readonly router;
    private readonly maxNumberOfManagedObjectsPerRequest;
    fetchReportDashboard(reportId: string): Promise<IManagedObject>;
    fetchContextDashboard(dashboardId: string, contextAsset: IManagedObject): Promise<IManagedObject>;
    loadManagedObjectsInChunks(uniqIds: string[]): Promise<{
        result: IManagedObject[];
        errors: any[];
    }>;
    /**
     * Navigate to datapoint explorer with given config.
     * The goal of this method is to navigate to the data explorer with a provided config from any other application.
     * @param config Configuration to use
     * @param label Label to be displayed for the configuration
     * @param id ID for the configuration
     */
    navigateToDataExplorer(config: DataExplorerUrlConfig, label: string, id: string): void;
    /**
     * Generate a URL for the datapoint explorer with the given config.
     * The goal of this method is to generate a shareable link to the data explorer.
     * @param config Configuration to use
     * @param label Label to be displayed for the configuration
     * @param id ID for the configuration
     * @returns The generated URL
     */
    getUrlForConfig(config: DataExplorerUrlConfig, label: string, id: string): string;
    processAlarmEventConfigs(config: DatapointsGraphWidgetConfig): void;
    processDatapoints(config: DatapointsGraphWidgetConfig): void;
    /**
     * Generates a color from a fixed palette based on the index.
     * Used to assign colors to alarm/event configs in the UI.
     */
    generateColor(index: number): string;
    loadAndAssignManagedObjects(config: DatapointsGraphWidgetConfig, uniqueIds: string[]): Promise<void>;
    private loadAChunkOfManagedObjects;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataExplorerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DataExplorerService>;
}

export { DataExplorerService, DatapointExplorerModule, canActivateDatapointExplorer };
//# sourceMappingURL=index.d.ts.map
