import type { MaterialSourceLocation, MaterialSourceMetadata } from './material-contracts.js';
export type { MaterialSourceMetadata } from './material-contracts.js';
export interface ComputeSourceLocation {
    kind: 'compute';
    line: number;
}
export type ShaderSourceLocation = MaterialSourceLocation | ComputeSourceLocation;
/**
 * One WGSL compiler diagnostic enriched with source-location metadata.
 */
export interface ShaderCompilationDiagnostic {
    generatedLine: number;
    message: string;
    linePos?: number;
    lineLength?: number;
    sourceLocation: ShaderSourceLocation | null;
}
/**
 * Runtime context snapshot captured for shader compilation diagnostics.
 */
export interface ShaderCompilationRuntimeContext {
    materialSignature?: string;
    passGraph?: {
        passCount: number;
        enabledPassCount: number;
        inputs: string[];
        outputs: string[];
    };
    activeRenderTargets: string[];
}
/**
 * Structured payload attached to WGSL compilation errors.
 */
export interface ShaderCompilationDiagnosticsPayload {
    kind: 'shader-compilation';
    shaderStage?: 'fragment' | 'compute';
    diagnostics: ShaderCompilationDiagnostic[];
    fragmentSource: string;
    computeSource?: string;
    includeSources: Record<string, string>;
    defineBlockSource?: string;
    materialSource: MaterialSourceMetadata | null;
    runtimeContext?: ShaderCompilationRuntimeContext;
}
/**
 * Attaches structured diagnostics payload to an Error.
 */
export declare function attachShaderCompilationDiagnostics(error: Error, payload: ShaderCompilationDiagnosticsPayload): Error;
/**
 * Extracts structured diagnostics payload from unknown error value.
 */
export declare function getShaderCompilationDiagnostics(error: unknown): ShaderCompilationDiagnosticsPayload | null;
//# sourceMappingURL=error-diagnostics.d.ts.map