@shelltender/server
Version:
Server-side terminal session management for Shelltender
70 lines • 1.83 kB
TypeScript
import { EventEmitter } from 'events';
import { PatternConfig } from '@shelltender/core';
/**
* Manages pattern registration, matching, and event emission
*/
export declare class EventManager extends EventEmitter {
private options?;
private patterns;
private sessionPatterns;
private patternIdCounter;
private persistedPatternsFile;
constructor(options?: {
persistPath?: string;
} | undefined);
/**
* Register a new pattern
*/
registerPattern(sessionId: string, config: PatternConfig): Promise<string>;
/**
* Unregister a pattern
*/
unregisterPattern(patternId: string): Promise<void>;
/**
* Process new terminal data for pattern matching
*/
processData(sessionId: string, data: string, buffer: string): void;
/**
* Check for ANSI sequences (built-in detection)
*/
private checkAnsiSequences;
/**
* Categorize ANSI sequence
*/
private categorizeAnsiSequence;
/**
* Emit a terminal event
*/
private emitEvent;
/**
* Get all patterns for a session
*/
getSessionPatterns(sessionId: string): PatternConfig[];
/**
* Get pattern statistics
*/
getStats(): {
totalPatterns: number;
sessionCount: number;
patterns: {
id: string;
name: string;
type: import("@shelltender/core").PatternType;
matchCount: number;
lastMatchTime: number;
}[];
};
/**
* Clean up patterns for a session
*/
cleanupSession(sessionId: string): Promise<void>;
/**
* Persist patterns to disk
*/
private persistPatterns;
/**
* Load persisted patterns from disk
*/
private loadPersistedPatterns;
}
//# sourceMappingURL=EventManager.d.ts.map