@shelltender/server
Version:
Server-side terminal session management for Shelltender
55 lines • 1.6 kB
TypeScript
import { PatternConfig, PatternMatch } from '@shelltender/core';
/**
* Base class for all pattern matchers
* Provides common functionality and performance tracking
*/
export declare abstract class PatternMatcher {
protected config: PatternConfig;
protected id: string;
protected lastMatchTime: number;
protected matchCount: number;
constructor(config: PatternConfig, id: string);
/**
* Get the pattern ID
*/
getId(): string;
/**
* Get the pattern name
*/
getName(): string;
/**
* Get the pattern configuration
*/
getConfig(): PatternConfig;
/**
* Abstract method that each matcher must implement
* @param data - The new data chunk to match against
* @param buffer - The full buffer content (for context)
* @returns Match result or null if no match
*/
abstract match(data: string, buffer: string): PatternMatch | null;
/**
* Wrapper method that handles debouncing and performance tracking
*/
tryMatch(data: string, buffer: string): PatternMatch | null;
/**
* Helper for performance tracking
*/
protected measureMatch<T>(fn: () => T): T;
/**
* Get matcher statistics
*/
getStats(): {
id: string;
name: string;
type: import("@shelltender/core").PatternType;
matchCount: number;
lastMatchTime: number;
};
/**
* Validate the pattern configuration
* Can be overridden by subclasses for specific validation
*/
validate(): void;
}
//# sourceMappingURL=PatternMatcher.d.ts.map