@xec-sh/core
Version:
Universal shell execution engine
28 lines (27 loc) • 1.26 kB
TypeScript
import type { UshEventMap, TypedEventEmitter } from '../types/events.js';
export interface EventFilter {
adapter?: string | string[];
host?: string;
[key: string]: any;
}
export interface FilteredEventListener<T> {
listener: (data: T) => void;
filter?: EventFilter;
}
declare const EnhancedEventEmitter_base: new () => TypedEventEmitter<UshEventMap>;
export declare class EnhancedEventEmitter extends EnhancedEventEmitter_base {
private filteredListeners;
private wildcardListeners;
onFiltered<K extends keyof UshEventMap>(event: K | string, filterOrListener: EventFilter | ((data: UshEventMap[K]) => void), listener?: (data: UshEventMap[K]) => void): this;
private handleFilteredEvent;
private setupWildcardListener;
private wildcardSetupMap;
private hasWildcardListenerSetup;
private markWildcardListenerSetup;
private handleWildcardEvent;
private matchesFilter;
offFiltered<K extends keyof UshEventMap>(event: K | string, listener: (data: UshEventMap[K]) => void): this;
emitEnhanced<K extends keyof UshEventMap>(event: K, data: Omit<UshEventMap[K], 'timestamp' | 'adapter'>, adapter: string): boolean;
}
export declare function createEnhancedEventEmitter(): EnhancedEventEmitter;
export {};