import Emitter, { Listener } from "@gauf/emitter";
import { Extractor } from "@gauf/emitters/extractors/behavior";
export declare type Settings = {
    metrics?: string[];
};
export declare type MetricSourceListener = {
    listener: {
        handler: (event: Event) => void;
        useCapture?: boolean;
    };
    name: string;
};
export declare type MetricSourceListeners = MetricSourceListener[];
export declare type MetricSource = {
    event: string;
    extractor?: Extractor;
    useCapture?: boolean;
};
export declare type MetricSources = MetricSource[];
export declare const metricSources: MetricSources;
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;
}
//# sourceMappingURL=behavior.d.ts.map