import { SemanticLayoutGraph } from './SemanticLayoutGraph.js'; import type { TruncationInfo } from './types.js'; export interface PropagationOptions { /** Design tokens for validation (e.g., [4, 8, 12, 16, 24, 32]) */ designTokens?: number[]; /** Maximum depth to recurse (prevents infinite loops) */ maxDepth?: number; /** Files already visited (prevents circular imports) */ visitedFiles?: Set; /** * v1.1.0: Maximum number of files to parse before truncating. * Prevents hangs on projects with deep import chains. Default: 20. */ maxFiles?: number; /** * v1.1.0: Maximum file size in KB. Files larger than this are skipped. * Default: 500 KB. */ maxFileSizeKB?: number; /** * v1.1.0: Timeout in milliseconds. Analysis stops after this duration. * Default: 10000 (10 seconds). */ timeoutMs?: number; } export declare class VenousPropagator { private graph; private options; private fileCache; private componentResolver; private filesParsed; private filesSkippedSize; private unresolvedComponents; private startTime; constructor(options?: PropagationOptions); /** * Propagate from an entry-point file and build the full graph. */ propagate(filePath: string): SemanticLayoutGraph; /** * v1.1.0: Get truncation info for the last propagation run. */ getTruncationInfo(): TruncationInfo; /** * v1.1.0: Check if any performance limit has been hit. */ private isLimitHit; /** * Get the built graph. */ getGraph(): SemanticLayoutGraph; private walkComponent; private walkJSX; private walkJSXChild; private parseFileWithCache; } //# sourceMappingURL=VenousPropagator.d.ts.map