UNPKG

@shelltender/server

Version:

Server-side terminal session management for Shelltender

55 lines 1.6 kB
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