# API Reference
| `ProgressBar` | `struct ProgressBar` | Thread-safe progress bar handle. | [Progress Bars](progress-bar.md) |
| `ProgressBarBuilder` | `struct ProgressBarBuilder` | Builder for length, style, target, template, and throttling. | [Progress Bars](progress-bar.md) |
| `ProgressBar::new` | `fn new(len: u64) -> ProgressBar` | Creates a measured bar. | [Progress Bars](progress-bar.md) |
| `ProgressBar::new_spinner` | `fn new_spinner() -> ProgressBar` | Creates an indeterminate bar. | [Spinners](spinners.md) |
| `ProgressBar::hidden` | `fn hidden() -> ProgressBar` | Creates a silent bar for tests. | [Advanced](advanced.md) |
| `ProgressBar::with_draw_target` | `fn with_draw_target(len, target) -> ProgressBar` | Uses a custom draw target. | [Advanced](advanced.md) |
| `ProgressBar::with_style` | `fn with_style(len, style) -> ProgressBar` | Creates a bar with a custom style. | [Styling](styling.md) |
| `ProgressBar::with_template` | `fn with_template(len, template) -> Result<ProgressBar, TemplateError>` | Creates a bar from a custom template. | [Styling](styling.md) |
| `ProgressBar::builder` | `fn builder() -> ProgressBarBuilder` | Starts builder configuration. | [Progress Bars](progress-bar.md) |
| `ProgressBarBuilder::template` | `fn template(self, template) -> Result<Self, TemplateError>` | Sets a custom template while building. | [Styling](styling.md) |
| `inc` / `inc_by` | `fn inc(&self, delta: u64)` | Advances position. | [Progress Bars](progress-bar.md) |
| `set_position` | `fn set_position(&self, pos: u64)` | Sets absolute position. | [Progress Bars](progress-bar.md) |
| `set_length` | `fn set_length(&self, len: u64)` | Sets total length. | [Progress Bars](progress-bar.md) |
| `set_length_unknown` | `fn set_length_unknown(&self)` | Clears the known total. | [Progress Bars](progress-bar.md) |
| `set_message` | `fn set_message(&self, msg)` | Sets `{msg}`. | [Styling](styling.md) |
| `set_prefix` | `fn set_prefix(&self, prefix)` | Sets `{prefix}`. | [Styling](styling.md) |
| `set_postfix` | `fn set_postfix(&self, postfix)` | Sets `{postfix}`. | [Styling](styling.md) |
| `tick` | `fn tick(&self)` | Advances spinner frame. | [Spinners](spinners.md) |
| `finish` | `fn finish(&self)` | Completes the bar. | [Progress Bars](progress-bar.md) |
| `finish_with_message` | `fn finish_with_message(&self, msg)` | Completes with final message. | [Progress Bars](progress-bar.md) |
| `finish_with_symbol` | `fn finish_with_symbol(&self, symbol, msg)` | Completes with a fixed prefix marker. | [Progress Bars](progress-bar.md) |
| `finish_and_clear` | `fn finish_and_clear(&self)` | Completes and clears output. | [Progress Bars](progress-bar.md) |
| `abandon` | `fn abandon(&self)` | Stops without finished state. | [Progress Bars](progress-bar.md) |
| `reset` | `fn reset(&self)` | Reuses the bar from zero. | [Progress Bars](progress-bar.md) |
| `set_style` | `fn set_style(&self, style)` | Replaces visual style. | [Styling](styling.md) |
| `set_template` | `fn set_template(&self, template) -> Result<(), TemplateError>` | Replaces style from a template. | [Styling](styling.md) |
| `set_draw_delta` | `fn set_draw_delta(&self, delta)` | Redraws after enough progress. | [Advanced](advanced.md) |
| `set_draw_rate` | `fn set_draw_rate(&self, rate)` | Caps redraws per second. | [Advanced](advanced.md) |
| `enable_steady_tick` | `fn enable_steady_tick(&self, interval)` | Starts background ticking. | [Spinners](spinners.md) |
| `println` | `fn println(&self, msg: &str)` | Prints above the bar. | [Progress Bars](progress-bar.md) |
| `wrap_iter` | `fn wrap_iter<I>(&self, iter: I)` | Uses a bar for an iterator. | [Examples](examples.md) |
| `fraction` | `fn fraction(&self) -> f64` | Returns completion ratio. | [Progress Bars](progress-bar.md) |
| `percent` | `fn percent(&self) -> f64` | Returns completion percent. | [Progress Bars](progress-bar.md) |
| `remaining` | `fn remaining(&self) -> Option<u64>` | Returns remaining work. | [Progress Bars](progress-bar.md) |
| `is_finished` | `fn is_finished(&self) -> bool` | Returns completion state. | [Progress Bars](progress-bar.md) |
| `is_abandoned` | `fn is_abandoned(&self) -> bool` | Returns abandonment state. | [Progress Bars](progress-bar.md) |
| `Spinner` | `struct Spinner` | Ergonomic spinner wrapper. | [Spinners](spinners.md) |
| `Spinner::success` | `fn success(&self, msg)` | Stops with a success marker. | [Spinners](spinners.md) |
| `Spinner::failure` | `fn failure(&self, msg)` | Stops with a failure marker. | [Spinners](spinners.md) |
| `Spinner::warning` | `fn warning(&self, msg)` | Stops with a warning marker. | [Spinners](spinners.md) |
| `Spinner::info` | `fn info(&self, msg)` | Stops with an informational marker. | [Spinners](spinners.md) |
| `MultiProgress` | `struct MultiProgress` | Shared block for many bars. | [Multi Progress](multi-progress.md) |
| `ProgressStyle` | `struct ProgressStyle` | Template, chars, colors, keys. | [Styling](styling.md) |
| `ProgressChars` | `struct ProgressChars` | Reusable fill, head, and empty characters. | [Styling](styling.md) |
| `Theme` | `enum Theme` | Built-in style presets. | [Themes](themes.md) |
| `Color` | `enum Color` | ANSI color value. | [Styling](styling.md) |
| `ColorSpec` | `struct ColorSpec` | ANSI text attributes. | [Styling](styling.md) |
| `DrawTarget` | `enum DrawTarget` | Stdout, stderr, hidden, or writer. | [Advanced](advanced.md) |
| `terminal::detect::terminal_width_for_fd` | `fn terminal_width_for_fd(fd: i32) -> usize` | Detects width for stdout/stderr with fallback. | [Advanced](advanced.md) |
| `terminal::detect::terminal_height_for_fd` | `fn terminal_height_for_fd(fd: i32) -> usize` | Detects height for stdout/stderr with fallback. | [Advanced](advanced.md) |
| `terminal::detect::supports_interactive_output` | `fn supports_interactive_output(fd: i32) -> bool` | Checks interactive cursor-update support for a stream. | [Advanced](advanced.md) |
| `ProgressIterator` | `trait ProgressIterator` | Adds `.progress()` methods. | [Examples](examples.md) |
| `format_bytes` | `fn format_bytes(u64) -> String` | Human byte count. | [Styling](styling.md) |
| `format_duration` | `fn format_duration(Duration) -> String` | Human duration. | [Styling](styling.md) |