import { ProcessCostsService } from './ProcessCostsService';
import { RuntimeService } from './RuntimeService';
type HeatmapLevel = 'Critical' | 'Warning' | 'Stable';
export interface ProcessModel {
    customProperties: {
        'pilot.setRuntime.warning'?: string;
        'pilot.setRuntime.critical'?: string;
        'pilot.setProcessCosts.warning'?: string;
        'pilot.setProcessCosts.critical'?: string;
    };
    flowNodes: Array<{
        id: string;
        customProperties: {
            'pilot.setRuntime.reference'?: string;
            'pilot.setRuntime.warning'?: string;
            'pilot.setRuntime.critical'?: string;
        };
    }>;
}
export interface BpmnViewer {
    getOverlays(): any;
    getElementRegistry(): any;
    clearHeatmap(data: string[]): void;
    showHeatmap(data: Record<string, HeatmapLevel>): void;
}
export interface NodeHeatmapInfo {
    status: HeatmapLevel;
    referenceRuntime: number;
    warningThreshold?: number;
    criticalThreshold?: number;
    warningSource?: 'Flow Node' | 'Process';
    criticalSource?: 'Flow Node' | 'Process';
}
export declare class HeatmapService {
    private nodeInfoMap;
    private heatmapInfo;
    private runtimeService;
    private processCostsService;
    private bpmnViewer;
    private activeCostKeyPerNode;
    constructor(runtimeService: RuntimeService, processCostsService: ProcessCostsService, processModel: ProcessModel);
    updateHeatmapService(runtimeService: RuntimeService, processCostsService: ProcessCostsService, processModel: ProcessModel): void;
    getHeatmapInfoForId(flowNodeId: string): {
        [key: string]: NodeHeatmapInfo;
    };
    hasRuntimeEntry(): boolean;
    hasCostEntry(): boolean;
    getActiveCostKey(nodeId: string): string | undefined;
    hasMultipleCostEntries(flowNodeId: string): boolean;
    applyHeatmap(showHeatmap: boolean, type: string, options: {
        viewer?: BpmnViewer;
        flowNodeId?: string;
    }): void;
    private computeCostHeatmap;
    private computeRuntimeHeatmap;
    private getHeatmapSource;
}
export {};
