import type { Node, Query, Tree } from 'web-tree-sitter'; import type { RepomixConfigMerged } from '../../../config/configSchema.js'; export interface ParseContext { fileContent: string; lines: string[]; tree: Tree; query: Query; config: RepomixConfigMerged; } export interface ParseStrategy { parseCapture(capture: { node: Node; name: string; }, lines: string[], processedChunks: Set, context: ParseContext): string | null; } export type ParseResult = { content: string | null; processedSignatures?: Set; }; export declare abstract class BaseParseStrategy implements ParseStrategy { abstract parseCapture(capture: { node: Node; name: string; }, lines: string[], processedChunks: Set, context: ParseContext): string | null; protected getCaptureTypes>(name: string, captureTypes: T): Set; protected checkAndAddToProcessed(content: string, processedChunks: Set): boolean; protected validateLineExists(lines: string[], startRow: number): boolean; protected extractLines(lines: string[], startRow: number, endRow: number): string[] | null; protected createNullResult(): ParseResult; protected createResult(content: string, processedSignatures?: Set): ParseResult; }