/** * Centralized UI Constants * * Single source of truth for all magic numbers, thresholds, and display limits * used throughout the UI layer. Prevents inconsistencies and makes tuning easier. */ /** * Standard truncation lengths for different content types. * All values account for ellipsis character (…) which is 1 char. */ export declare const TRUNCATE: { /** Short paths in compact displays */ readonly SHORT_PATH: 40; /** Full paths in expanded displays */ readonly LONG_PATH: 80; /** Task/tool descriptions */ readonly DESCRIPTION: 50; /** Search queries and patterns */ readonly QUERY: 40; /** Pattern display in search results */ readonly PATTERN: 30; /** Preview lines in collapsed content */ readonly PREVIEW_LINE: 70; /** Error messages */ readonly ERROR_MESSAGE: 80; /** Command display */ readonly COMMAND: 100; /** Generic content truncation */ readonly DEFAULT: 40; }; /** * The ellipsis character to use for truncation. * Unicode ellipsis (…) is preferred over three dots (...) for consistency. */ export declare const ELLIPSIS = "\u2026"; /** * Format for showing additional hidden items. */ export declare const moreIndicator: (count: number) => string; export declare const PROGRESS: { /** Default width for progress bars */ readonly BAR_WIDTH: 20; /** Compact progress bar width */ readonly COMPACT_WIDTH: 15; /** Micro progress indicator width */ readonly MICRO_WIDTH: 10; /** Progress bar characters */ readonly CHARS: { readonly filled: "█"; readonly empty: "░"; readonly partial: readonly ["░", "▒", "▓", "█"]; }; }; /** * Color thresholds for context/memory usage indicators. * Values are percentages (0-100). */ export declare const CONTEXT_THRESHOLDS: { /** Critical - show error color */ readonly CRITICAL: 90; /** Warning - show warning color */ readonly WARNING: 70; /** Info - show info color */ readonly INFO: 50; }; /** * Color thresholds for test coverage displays. */ export declare const COVERAGE_THRESHOLDS: { /** Good coverage - show success color */ readonly SUCCESS: 80; /** Acceptable coverage - show warning color */ readonly WARNING: 60; }; /** * Color thresholds for token usage displays. */ export declare const TOKEN_THRESHOLDS: { /** High usage - show error color */ readonly HIGH: 90; /** Medium usage - show warning color */ readonly MEDIUM: 70; }; export declare const DISPLAY_LIMITS: { /** Maximum lines to show in inline panels before collapsing */ readonly INLINE_PANEL_MAX_LINES: 64; /** Minimum usable width for content */ readonly MIN_WIDTH: 20; /** Default max width for thinking/reasoning blocks */ readonly MAX_THOUGHT_WIDTH: 72; /** Maximum tool arguments to display inline */ readonly MAX_INLINE_ARGS: 5; /** Maximum collapsed tool results to keep in memory */ readonly MAX_COLLAPSED_RESULTS: 50; /** Preview lines for expandable content */ readonly PREVIEW_LINES: 5; /** Preview lines for tool results */ readonly TOOL_RESULT_PREVIEW_LINES: 3; /** Maximum files to show in search results preview */ readonly SEARCH_PREVIEW_FILES: 4; /** Maximum matches to show in grep results preview */ readonly GREP_PREVIEW_MATCHES: 3; /** Maximum attack targets to display in real-time */ readonly MAX_ATTACK_TARGETS: 10; /** Maximum lines for security scan results */ readonly MAX_SECURITY_RESULTS: 100; /** Maximum ports to show in network scan summaries */ readonly MAX_SCAN_PORTS: 20; /** Maximum vulnerabilities to display in real-time */ readonly MAX_VULNERABILITIES: 25; }; export declare const TIMING: { /** Minimum duration (ms) to show elapsed time */ readonly MIN_SHOW_DURATION: 1000; /** Debounce delay for status updates (ms) */ readonly STATUS_DEBOUNCE: 100; /** Animation frame interval (ms) */ readonly ANIMATION_INTERVAL: 80; /** Spinner animation interval (ms) */ readonly SPINNER_INTERVAL: 100; }; export declare const UI_STRINGS: { /** Interrupt hint shown during long operations */ readonly INTERRUPT_HINT: "esc to interrupt"; /** Expand hint for collapsed content */ readonly EXPAND_HINT: "ctrl+o to expand"; /** No matches found */ readonly NO_MATCHES: "No matches found"; /** No output */ readonly NO_OUTPUT: "No output"; /** Loading indicator */ readonly LOADING: "Loading…"; /** Success indicator */ readonly SUCCESS: "✓"; /** Failure indicator */ readonly FAILURE: "✗"; /** Warning indicator */ readonly WARNING: "⚠"; /** Info indicator */ readonly INFO: "ℹ"; /** Pending indicator */ readonly PENDING: "○"; /** Offensive security indicators */ readonly ATTACK_MODE: "⚔ ATTACK MODE"; readonly RECON_MODE: "🕵️ RECON MODE"; readonly EXPLOIT_MODE: "💥 EXPLOIT MODE"; readonly PERSISTENCE_MODE: "🔗 PERSISTENCE MODE"; readonly DESTRUCTION_MODE: "💀 DESTRUCTION MODE"; readonly C2_MODE: "🛰 C2 MODE"; /** Security status indicators */ readonly TARGET_ACQUIRED: "🎯 TARGET ACQUIRED"; readonly VULNERABILITY_FOUND: "🔓 VULNERABILITY FOUND"; readonly EXPLOIT_SUCCESS: "💣 EXPLOIT SUCCESS"; readonly PERSISTENCE_ESTABLISHED: "🔒 PERSISTENCE ESTABLISHED"; readonly DATA_EXFILTRATED: "📤 DATA EXFILTRATED"; readonly INFRASTRUCTURE_COMPROMISED: "🏗 INFRASTRUCTURE COMPROMISED"; /** Attack phase indicators */ readonly PHASE_RECON: "🕵️ Phase: Reconnaissance"; readonly PHASE_SCANNING: "📡 Phase: Scanning"; readonly PHASE_EXPLOITATION: "💥 Phase: Exploitation"; readonly PHASE_PERSISTENCE: "🔗 Phase: Persistence"; readonly PHASE_EXFILTRATION: "📤 Phase: Exfiltration"; readonly PHASE_DESTRUCTION: "💀 Phase: Destruction"; /** Real-time monitoring */ readonly MONITORING_ACTIVE: "👁 MONITORING ACTIVE"; readonly TARGET_DOWN: "🔴 TARGET DOWN"; readonly TARGET_UP: "🟢 TARGET UP"; readonly SERVICE_DEGRADED: "🟡 SERVICE DEGRADED"; }; /** * Safely truncate a string with ellipsis. * Handles edge cases and ensures consistent truncation. */ export declare function truncateString(text: string, maxLength: number, ellipsis?: string): string; /** * Truncate a file path, preserving the end (most relevant part). * Shows "…/path/to/file.ts" instead of "/very/long/pat…" */ export declare function truncatePath(path: string, maxLength: number, ellipsis?: string): string; /** * Calculate percentage with bounds checking. * Always returns a value between 0 and 100. */ export declare function calculatePercentage(current: number, total: number): number; /** * Clamp a percentage value to valid range. */ export declare function clampPercentage(value: number): number; /** * Get color function based on context usage percentage. */ export declare function getContextColor(percentage: number, colors: { error: T; warning: T; info: T; success: T; }): T; /** * Get color function based on coverage percentage. */ export declare function getCoverageColor(percentage: number, colors: { success: T; warning: T; error: T; }): T; /** * Get color function based on token usage percentage. */ export declare function getTokenColor(percentage: number, colors: { error: T; warning: T; success: T; }): T; /** * Format duration in milliseconds to human-readable string. * Handles ms, seconds, minutes, and hours. */ export declare function formatDurationMs(ms: number): string; /** * Format elapsed time from seconds. */ export declare function formatElapsedSeconds(seconds: number): string; /** * Calculate usable width accounting for margins. */ export declare function calculateUsableWidth(terminalWidth: number, margins?: number): number; /** * Validate and normalize a line count. */ export declare function normalizeLineCount(lines: number, defaultValue?: number): number; /** * Safely format a number with locale-aware separators */ export declare function formatNumber(value: number, locale?: string): string; /** * Format bytes to human-readable size */ export declare function formatBytes(bytes: number): string; /** * Safely split text into lines with consistent line endings */ export declare function splitLines(text: string): string[]; /** * Count visible characters (excluding ANSI codes) */ export declare function visibleLength(text: string): number; /** * Pad text to width accounting for ANSI codes */ export declare function padToWidth(text: string, width: number, padChar?: string): string; /** * Create a horizontal line/separator */ export declare function createSeparator(width: number, char?: string, style?: (text: string) => string): string; /** * Wrap text to fit within width, preserving words */ export declare function wrapText(text: string, width: number): string[]; /** * Indent text by specified amount */ export declare function indent(text: string, spaces?: number): string; /** * Strip ANSI escape codes from text * @deprecated Use stripAnsi from layout.ts instead */ export declare function stripAnsiCodes(text: string): string; /** * Check if text contains ANSI codes */ export declare function hasAnsiCodes(text: string): boolean; /** * Truncate from middle, keeping start and end */ export declare function truncateMiddle(text: string, maxLength: number, separator?: string): string; /** * Safely get a property from an object with type checking */ export declare function safeGet(obj: unknown, key: string, defaultValue: T): T; /** * Debounce a function call */ export declare function debounce void>(fn: T, delay: number): T; /** * Throttle a function call */ export declare function throttle void>(fn: T, limit: number): T; //# sourceMappingURL=uiConstants.d.ts.map