import { SceneConfig } from './scene-config-loader';
import { ResourceResult } from './scene-executor';
import { ResourceOutputs } from './variable-resolver';
export type OutputFormat = 'table' | 'json';
export interface RenderOptions {
    format?: OutputFormat | undefined;
    duration?: number | undefined;
}
export interface ErrorContext {
    rolledBack?: string[];
    failedAt?: string;
    suggestion?: string;
}
export declare class OutputRenderer {
    private readonly resolver;
    private readonly spinnerFrames;
    private spinnerIndex;
    constructor();
    renderSummary(config: SceneConfig, resources: ResourceResult[], options?: RenderOptions): string;
    renderNextSteps(nextSteps: Array<{
        command: string;
        description: string;
    }>, outputs: ResourceOutputs): string;
    renderProgress(event: {
        phase: 'creating' | 'created' | 'rolling_back' | 'rolled_back';
        resourceId: string;
        resourceType: string;
        showSpinner?: boolean;
        current?: number;
        total?: number;
    }): string;
    renderError(error: Error, context?: ErrorContext, options?: RenderOptions): string;
    renderTemplate(template: string, outputs: ResourceOutputs): string;
    renderDryRunOutput(config: SceneConfig, resources: ResourceResult[]): string;
    private renderSummaryTable;
    private renderSummaryJson;
    private getNextSpinnerFrame;
}
//# sourceMappingURL=output-renderer.d.ts.map