import { EventBatcher } from '../event-batcher';
import { ClientConfig } from '../types';
export interface CustomEventConfig {
    name: string;
    category: string;
    description?: string;
    tags?: Record<string, string>;
    targetSystem?: string;
}
export declare class CustomEventMonitor {
    private readonly eventBatcher;
    private readonly clientConfig;
    private readonly events;
    constructor(eventBatcher: EventBatcher, clientConfig: ClientConfig);
    /**
     * Registriert ein neues Custom Event
     */
    registerEvent(config: CustomEventConfig): void;
    /**
     * Löst ein registriertes Event aus
     */
    triggerEvent(eventName: string, data?: Record<string, unknown>, durationMs?: number): Promise<void>;
    /**
     * Entfernt ein registriertes Event
     */
    unregisterEvent(eventName: string): void;
    /**
     * Gibt alle registrierten Events zurück
     */
    getRegisteredEvents(): CustomEventConfig[];
}
