import type { AnyPass, RenderPassInputSlot, RenderPassOutputSlot } from './types.js';
/**
 * Resolved render-pass step with defaults applied.
 */
export interface RenderGraphStep {
    /**
     * Step kind. 'render' for post-scene render passes, 'compute' for pre-scene compute passes.
     */
    kind: 'render' | 'compute';
    /**
     * User pass instance.
     */
    pass: AnyPass;
    /**
     * Resolved input slot. Ignored for compute steps.
     */
    input: RenderPassInputSlot;
    /**
     * Resolved output slot. Ignored for compute steps.
     */
    output: RenderPassOutputSlot;
    /**
     * Whether ping-pong swap should be performed after render.
     */
    needsSwap: boolean;
    /**
     * Whether pass should clear output before drawing.
     */
    clear: boolean;
    /**
     * Effective clear color.
     */
    clearColor: [number, number, number, number];
    /**
     * Whether output should be preserved after pass ends.
     */
    preserve: boolean;
}
/**
 * Immutable render-graph execution plan for one frame.
 */
export interface RenderGraphPlan {
    /**
     * Resolved enabled steps in declaration order.
     */
    steps: RenderGraphStep[];
    /**
     * Enabled compute steps. These always execute before the base scene render.
     */
    computeSteps: RenderGraphStep[];
    /**
     * Enabled render steps. These always execute after the base scene render.
     */
    renderSteps: RenderGraphStep[];
    /**
     * Output slot holding final post-scene render result before presentation.
     * Remains 'canvas' when there are no render steps.
     */
    finalOutput: RenderPassOutputSlot;
}
/**
 * Builds validated render graph plan from runtime pass list.
 *
 * @param passes - Runtime passes.
 * @param defaultClearColor - Global clear color fallback.
 * @returns Resolved render graph plan.
 */
export declare function planRenderGraph(passes: AnyPass[] | undefined, defaultClearColor: [number, number, number, number], renderTargetSlots?: Iterable<string>): RenderGraphPlan;
//# sourceMappingURL=render-graph.d.ts.map