/** * Progress bar primitives — fixed-width segmented bars rendered as Unicode * block / braille characters. * * @remarks * Three canon-themed styles: * - `tapestry` — Unicode block characters (`░▒▓█`); evokes a woven cloth * filling cell-by-cell. * - `cascade` — gradient block characters (`▏▎▍▌▋▊▉█`); the bar fills * by 1/8 increments per character, producing a smooth waterfall edge. * - `refinery` — braille block fill (`⠀⡀⡄⡆⡇⣇⣧⣷⣿`); evokes the BRAIN * memory promotion pipeline being filled stage-by-stage. * * Every style receives the same input — a value in `[0, 1]` and a width in * characters — and emits a fixed-width string. Callers compose this with * label / percentage / colour separately. */ /** * Canon progress-bar style identifier. */ export type ProgressBarStyle = 'tapestry' | 'cascade' | 'refinery'; /** * One rendered progress-bar style. */ export interface ProgressBarRenderer { /** Style identifier. */ readonly style: ProgressBarStyle; /** Render a bar at the given fill ratio. */ readonly render: (ratio: number, width: number) => string; } /** * Registry of progress-bar styles keyed by canon name. */ export declare const progressBars: Record; /** * Render a progress bar of the chosen style at the given fill ratio + width. * * @param style - Canon style name (`tapestry`, `cascade`, or `refinery`) * @param ratio - Fill ratio in `[0, 1]`. Values outside the range are clamped. * @param width - Bar width in terminal columns. Negative or zero yields `''`. * @returns The rendered bar as a fixed-width string. * * @example * ```ts * renderProgressBar('cascade', 0.42, 20); * // → "████████▍ " * ``` */ export declare function renderProgressBar(style: ProgressBarStyle, ratio: number, width: number): string; //# sourceMappingURL=progress.d.ts.map