import { IIdentified, IManagedObject, InventoryService, IResultList, MeasurementService } from '@c8y/client';
import { AppStateService, ColorService } from '@c8y/ngx-components';
import { KPIDetails, ManagedObjectKPI } from './datapoint-selection.model';
import * as i0 from "@angular/core";
export declare class DatapointLibraryService {
    private inventory;
    private appState;
    private measurements;
    private color;
    protected cache: Promise<ManagedObjectKPI[]>;
    constructor(inventory: InventoryService, appState: AppStateService, measurements: MeasurementService, color: ColorService);
    getAllDatapointLibraryEntriesCached(forceCacheRenew?: boolean): Promise<ManagedObjectKPI[]>;
    getFirstDatapointLibraryPage(): Promise<IResultList<ManagedObjectKPI>>;
    getAllDatapointLibraryItemsCached(): Promise<KPIDetails[]>;
    updateDatapoints(datapoints: KPIDetails[], skipUpdatingTarget?: boolean): Promise<KPIDetails[]>;
    getDatapointsOfAsset(parentReference: IIdentified, ignoreDatapointTemplates?: boolean): Promise<KPIDetails[]>;
    /**
     * Requests the last measurement with the given fragment and series to extract it's unit.
     * If the source attribute is provided, it will check the last measurement for this specific source.
     * @returns found unit or an empty string instead
     */
    guessUnitOfDatapoint(fragment: string, series: string, source?: IIdentified): Promise<string>;
    protected combineFragmentSeriesTuplesWithDetails(tuples: Array<{
        fragment: string;
        series: string;
    }>, target: IIdentified, kpis: ManagedObjectKPI[]): Promise<KPIDetails[]>;
    protected assignColorToDatapoints(datapoints: KPIDetails[]): Promise<void>;
    protected getAllDatapointLibraryEntries(): Promise<ManagedObjectKPI[]>;
    protected mapDatapointLibraryEntry(entry: ManagedObjectKPI): KPIDetails;
    protected getCurrentTemplatesFromDatapoints(datapoints: KPIDetails[]): Promise<IManagedObject[]>;
    protected getCurrentVersionOfTargetsFromDatapoints(datapoints: KPIDetails[]): Promise<IManagedObject[]>;
    protected getMOsByIds(ids: Array<string | number>): Promise<IManagedObject[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatapointLibraryService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DatapointLibraryService>;
}
//# sourceMappingURL=datapoint-library.service.d.ts.map