/** * Options for controlling key-value pair formatting. */ export type KeyValueOptions = { /** Width to pad the key to for column alignment. Default: 20. */ readonly keyWidth?: number; }; /** * Returns a standardized section header string. * * Matches the style of oclif's `styledHeader()` which outputs `=== Title ===`. * Empty titles produce `=== ===` (delimiters with the template spaces). * Whitespace-only titles preserve the whitespace between delimiters. * * @param title - The section title text * @returns A formatted header string, e.g. `=== My Section ===` * * @example * sectionHeader('Objects') // "=== Objects ===" * sectionHeader('Summary') // "=== Summary ===" */ export declare function sectionHeader(title: string): string; /** * Returns a standardized section header with a formatted count. * * Combines `sectionHeader()` with `formatNumber()` for the common pattern * of "=== Title (N) ===" used across commands. An optional suffix can be * appended after the count (e.g., "5 total", "3 active"). * * @param title - The section title text * @param count - The numeric count to display (formatted with locale separators) * @param suffix - Optional text appended after the count (e.g., "total", "active") * @returns A formatted header string, e.g. `=== Fields (1,234 total) ===` * * @example * sectionHeaderWithCount('Fields', 42) // "=== Fields (42) ===" * sectionHeaderWithCount('Fields', 1500, 'total') // "=== Fields (1,500 total) ===" * sectionHeaderWithCount('Record Types', 3, 'active') // "=== Record Types (3 active) ===" */ export declare function sectionHeaderWithCount(title: string, count: number, suffix?: string): string; /** * Returns an empty string for whitespace-based section separation. * * Section headings (e.g., `=== Title ===`) provide sufficient visual * breaks between sections. Callers emit the return value via `this.log()` * which produces a blank line — cleaner than dashed dividers. * * @returns An empty string * * @example * sectionSeparator() // "" */ export declare function sectionSeparator(): string; /** * Number of blank lines emitted between major display sections. * * Commands use this constant with their `this.log('')` calls to produce * consistent inter-section spacing. Two blank lines = one visible gap. * * @example * for (let i = 0; i < SECTION_GAP_LINES; i++) { this.log(''); } */ export declare const SECTION_GAP_LINES = 2; /** * Emits blank lines for inter-section spacing via the provided log function. * * Replaces the duplicated private `sectionGap()` method pattern found in * command classes. Calls `log('')` exactly {@link SECTION_GAP_LINES} times. * * @param log - A logging function (typically `this.log.bind(this)` from an oclif command) * * @example * // In a command class: * logSectionGap(this.log.bind(this)); */ export declare function logSectionGap(log: (msg: string) => void): void; /** * Returns a formatted key-value pair string with consistent padding. * * The key is left-aligned and padded to `keyWidth` characters, preceded by * a 2-space indent. This produces vertically aligned columns when multiple * key-value pairs are displayed together. * * @param key - The label/key text * @param value - The value to display * @param options - Formatting options (keyWidth for alignment) * @returns A formatted string, e.g. ` Key Value` * * @example * keyValue('Name', 'Account') // " Name Account" * keyValue('Count', '42') // " Count 42" * keyValue('ID', 'abc', { keyWidth: 10 }) // " ID abc" */ export declare function keyValue(key: string, value: string, options?: KeyValueOptions): string; /** * Returns an array of formatted bullet list strings. * * Each item is prefixed with ` - ` (2-space indent + dash + space). * Empty arrays return an empty array. Items are used as-is (no trimming). * * @param items - The list of items to format as bullets * @returns An array of bullet-prefixed strings * * @example * bulletList(['Alpha', 'Beta']) // [" - Alpha", " - Beta"] * bulletList([]) // [] */ export declare function bulletList(items: string[]): string[];