import { type PackageResult, type Reporter, type JobPhase, type ProgressSummary } from './reporter.js';
import { LiveStateTracker } from './state/live-state-tracker.js';
/**
 * Owns a LiveStateTracker and fans out every lifecycle hook
 * to an array of reporters created by a factory callback.
 *
 * State is always updated first, so reporters see current data.
 */
export declare class CompositeReporter implements Reporter {
    private _state;
    private _reporters;
    constructor(packageNames: string[], factory: (state: LiveStateTracker) => Reporter[]);
    get state(): LiveStateTracker;
    startAsync(): Promise<void>;
    onPackageStart(packageName: string): void;
    onPackagePhaseChange(packageName: string, phase: JobPhase): void;
    onPackageProgressUpdate(packageName: string, progress: ProgressSummary): void;
    onPackageResult(result: PackageResult, bufferedOutput?: string[]): void;
    stopAsync(): Promise<void>;
}
//# sourceMappingURL=composite-reporter.d.ts.map