/**
 * Progress Reporter
 *
 * Provides consistent progress reporting for long-running operations.
 */
import type { ProgressCallback } from './types.js';
/**
 * Progress reporter for long-running operations.
 *
 * Wraps a progress callback with convenient methods for reporting status updates.
 *
 * @example
 * ```typescript
 * async function processLargeFile(
 *   data: Uint8Array,
 *   onProgress?: ProgressCallback
 * ): Promise<void> {
 *   const progress = new ProgressReporter(onProgress);
 *
 *   progress.start('Initializing...');
 *   // ... initialization work
 *
 *   progress.update('Processing...', 50);
 *   // ... processing work
 *
 *   progress.complete();
 * }
 * ```
 */
export declare class ProgressReporter {
    private readonly callback;
    private lastPercent;
    /**
     * Create a new progress reporter.
     *
     * @param callback Optional callback to invoke on progress updates
     */
    constructor(callback?: ProgressCallback);
    /**
     * Report progress with status and optional percentage.
     *
     * @param status Human-readable status message
     * @param percent Progress percentage (0-100), optional
     */
    report(status: string, percent?: number): void;
    /**
     * Report the start of an operation (0% progress).
     *
     * @param status Status message
     */
    start(status: string): void;
    /**
     * Update progress with status and percentage.
     *
     * @param status Status message
     * @param percent Progress percentage (0-100)
     */
    update(status: string, percent: number): void;
    /**
     * Report completion (100% progress).
     */
    complete(): void;
    /**
     * Get the last reported percentage.
     *
     * @returns Last reported percentage (0-100)
     */
    getLastPercent(): number;
}
/**
 * Create a progress reporter that tracks multiple stages.
 *
 * Divides the 0-100% range into equal segments for each stage.
 *
 * @param stages Array of stage names
 * @param callback Progress callback
 * @returns Object with methods for advancing through stages
 *
 * @example
 * ```typescript
 * const progress = createStagedProgress(
 *   ['Initializing', 'Processing', 'Finalizing'],
 *   (status, percent) => console.log(`${status}: ${percent}%`)
 * );
 *
 * progress.start(); // "Initializing: 0%"
 * progress.nextStage(); // "Processing: 33%"
 * progress.nextStage(); // "Finalizing: 67%"
 * progress.complete(); // "Complete: 100%"
 * ```
 */
export declare function createStagedProgress(stages: readonly string[], callback?: ProgressCallback): {
    start: () => void;
    nextStage: () => void;
    complete: () => void;
    getCurrentStage: () => string;
    getProgress: () => number;
};
//# sourceMappingURL=progress.d.ts.map