import { Metric, Payload } from "@gauf/tracker";
export declare type Listener = (metric: Metric) => void;
export declare type Settings = object;
export interface InterfaceEmitter {
    activate(payload?: Payload): void;
    deactivate(): void;
}
export declare type InterfaceEmitterConstructor = new (listener: Listener, settings?: Settings) => InterfaceEmitter;
export default abstract class MetricEmitter implements InterfaceEmitter {
    static readonly key: string;
    readonly settings?: Settings;
    readonly listener: Listener;
    constructor(listener: Listener, settings?: Settings);
    abstract activate(payload?: Payload): void;
    abstract deactivate(): void;
    protected emit(name: string, payload?: Payload): void;
}
//# sourceMappingURL=emitter.d.ts.map