///
import { EventEmitter } from 'events';
import { Tracker, TrackerValue, TrackerValuesContext } from './TrackTileService';
export type EventTypeHandlers = {
trackerChanged: (...tracker: Tracker[]) => void;
trackerRemoved: (tracker: Tracker) => void;
valuesChanged: (updates: {
valuesContext: TrackerValuesContext;
metricId: string;
tracker: Partial;
drop?: boolean;
saveToRecent?: boolean;
}[]) => void;
saveEditTrackerValue: (resolve?: (newValue: TrackerValue | undefined) => void, reject?: (reason?: unknown) => void) => void;
};
export type EventTypes = keyof EventTypeHandlers;
export type EventTypeHandler = EventTypeHandlers[T];
export declare class TrackTileEmitter extends EventEmitter {
addListener(eventType: T, listener: EventTypeHandler): this;
removeListener(eventType: EventTypes, listener: EventTypeHandler): this;
emit(eventType: T, ...params: Parameters>): boolean;
}
export declare const notifier: TrackTileEmitter;
export declare const notifyTrackerRemoved: (tracker: Tracker) => boolean;
export declare const notifySaveEditTrackerValue: (resolve?: ((newValue: TrackerValue | undefined) => void) | undefined, reject?: ((reason?: unknown) => void) | undefined) => boolean;