/**
 * Base class for all WGSL template errors.
 */
export declare abstract class WgslTemplateError extends Error {
    /**
     * The file path where the error occurred, if applicable.
     */
    readonly filePath?: string;
    /**
     * The line number where the error occurred, if applicable.
     */
    readonly lineNumber?: number;
    /**
     * The column number where the error occurred, if applicable.
     */
    readonly columnNumber?: number;
    constructor(message: string, options?: {
        filePath?: string;
        lineNumber?: number;
        columnNumber?: number;
        cause?: Error;
    });
    /**
     * Returns a formatted error message with location information.
     */
    getFormattedMessage(): string;
}
/**
 * Error that occurs during template loading (file system operations).
 */
export declare class WgslTemplateLoadError extends WgslTemplateError {
    /**
     * The type of load operation that failed.
     */
    readonly operation: "read-file" | "scan-directory" | "resolve-path" | "file-not-found" | "permission-denied" | "template-conflict";
    constructor(message: string, operation: WgslTemplateLoadError["operation"], options?: {
        filePath?: string;
        cause?: Error;
    });
}
/**
 * Error that occurs during template parsing (syntax analysis, include resolution, etc.).
 */
export declare class WgslTemplateParseError extends WgslTemplateError {
    /**
     * The type of parse operation that failed.
     */
    readonly operation: "comment-removal" | "include-resolution" | "include-not-found" | "include-circular" | "define-expansion" | "syntax-error" | "invalid-directive";
    /**
     * The source line that caused the error, if available.
     */
    readonly sourceLine?: string;
    constructor(message: string, operation: WgslTemplateParseError["operation"], options?: {
        filePath?: string;
        lineNumber?: number;
        columnNumber?: number;
        sourceLine?: string;
        cause?: Error;
    });
}
/**
 * Error that occurs during code generation.
 */
export declare class WgslTemplateGenerateError extends WgslTemplateError {
    /**
     * The type of generation operation that failed.
     */
    readonly operation: "code-pattern-not-found" | "parameter-missing" | "parameter-type-mismatch" | "variable-undefined" | "generator-not-found" | "code-generation-failed";
    /**
     * The name of the code pattern or parameter that caused the error, if applicable.
     */
    readonly symbolName?: string;
    /**
     * The expected type vs actual type, if this is a type-related error.
     */
    readonly typeInfo?: {
        expected: string;
        actual: string;
    };
    constructor(message: string, operation: WgslTemplateGenerateError["operation"], options?: {
        filePath?: string;
        lineNumber?: number;
        columnNumber?: number;
        symbolName?: string;
        typeInfo?: {
            expected: string;
            actual: string;
        };
        cause?: Error;
    });
}
/**
 * Error that occurs during the final build process (file writing, output generation).
 */
export declare class WgslTemplateBuildError extends WgslTemplateError {
    /**
     * The type of build operation that failed.
     */
    readonly operation: "create-directory" | "write-file" | "permission-denied" | "disk-full" | "path-security-violation" | "output-validation-failed" | "invalid-options";
    /**
     * The target output path that caused the error, if applicable.
     */
    readonly outputPath?: string;
    constructor(message: string, operation: WgslTemplateBuildError["operation"], options?: {
        filePath?: string;
        outputPath?: string;
        cause?: Error;
    });
}
/**
 * Type guard to check if an error is a WGSL template error.
 */
export declare function isWgslTemplateError(error: unknown): error is WgslTemplateError;
/**
 * Type guard functions for specific error types.
 */
export declare function isWgslTemplateLoadError(error: unknown): error is WgslTemplateLoadError;
export declare function isWgslTemplateParseError(error: unknown): error is WgslTemplateParseError;
export declare function isWgslTemplateGenerateError(error: unknown): error is WgslTemplateGenerateError;
export declare function isWgslTemplateBuildError(error: unknown): error is WgslTemplateBuildError;
/**
 * Utility function to create an error from an unknown error with context.
 */
export declare function wrapError<T extends WgslTemplateError>(ErrorClass: new (message: string, operation: string, options?: Record<string, unknown>) => T, operation: string, originalError: unknown, context?: {
    filePath?: string;
    lineNumber?: number;
    columnNumber?: number;
    [key: string]: unknown;
}): T;
//# sourceMappingURL=errors.d.ts.map