/**
 * Event Manager
 * For state notification of asynchronous processing
 */
export declare class EventEmitter {
    private events;
    /**
     * Register event listener
     * @param event Event name
     * @param listener Callback function
     */
    on(event: string, listener: (...args: any[]) => void): void;
    /**
     * Register event listener that will only be executed once
     * @param event Event name
     * @param listener Callback function
     */
    once(event: string, listener: (...args: any[]) => void): void;
    /**
     * Remove event listener
     * @param event Event name
     * @param listener Listener to remove (if omitted, all listeners will be removed)
     */
    off(event: string, listener?: (...args: any[]) => void): void;
    /**
     * Emit event
     * @param event Event name
     * @param args Arguments to pass to the event
     */
    emit(event: string, ...args: any[]): void;
    /**
     * Clear all event listeners
     */
    removeAllListeners(): void;
}
