import Emitter, { Listener } from "@gauf/tracker/emitter";
export declare type Settings = {
    metrics?: string[];
};
declare type MetricSourceListener = {
    listener: {
        handler: (event: Event) => void;
        useCapture?: boolean;
    };
    name: string;
};
declare type MetricSourceListeners = MetricSourceListener[];
declare type MetricSource = {
    event: string;
    extractor?: Extractor;
    useCapture?: boolean;
};
declare type Extractor = (event: any) => object;
export default class MetricBehaviorEmitter extends Emitter {
    static readonly key: string;
    protected metricSourceListeners: MetricSourceListeners;
    constructor(listener: Listener, settings?: Settings);
    activate(): void;
    deactivate(): void;
    protected createMetricSourceListener(metricSource: MetricSource): MetricSourceListener;
    protected createHandler(name: string, extractor?: Extractor): (event: Event) => void;
}
export {};
//# sourceMappingURL=behavior.d.ts.map