import type { CallStackEntry } from './evaluator/callStack'; import type { Arr } from './interface'; import type { SourceCodeInfo } from './tokenizer/token'; export declare class RecurSignal extends Error { params: Arr; constructor(params: Arr); } export declare class DvalaError extends Error { readonly sourceCodeInfo?: SourceCodeInfo; readonly shortMessage: string; /** Machine-readable error category for the structured @dvala.error payload. */ readonly errorType: string; /** Call stack entries attached when the error propagates out of the evaluator. */ callStack?: CallStackEntry[]; constructor(err: unknown, sourceCodeInfo: SourceCodeInfo | undefined); /** * Attach a call stack to this error and update the message. * Called when the error is about to propagate out of the evaluator * (not when caught by an algebraic handler). */ attachCallStack(entries: CallStackEntry[]): void; getCodeMarker(): string | undefined; toJSON(): DvalaErrorJSON; } export interface DvalaErrorJSON { name: string; message: string; shortMessage: string; line?: number; column?: number; code?: string; filePath?: string; } export declare class TokenizerError extends DvalaError { readonly errorType = "TokenizerError"; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class ParseError extends DvalaError { readonly errorType = "ParseError"; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class RuntimeError extends DvalaError { readonly errorType: string; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class TypeError extends RuntimeError { readonly errorType = "TypeError"; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class ReferenceError extends RuntimeError { readonly errorType = "ReferenceError"; readonly symbol: string; constructor(symbolName: string, sourceCodeInfo?: SourceCodeInfo); } export declare class AssertionError extends RuntimeError { readonly errorType = "AssertionError"; constructor(message: string | Error, sourceCodeInfo?: SourceCodeInfo); } export declare class ArithmeticError extends RuntimeError { readonly errorType = "ArithmeticError"; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class MacroError extends RuntimeError { readonly errorType = "MacroError"; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class UserError extends RuntimeError { readonly errorType = "UserError"; readonly userMessage: string; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class MatchError extends RuntimeError { readonly errorType = "MatchError"; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } export declare class KeyError extends RuntimeError { readonly errorType = "KeyError"; constructor(message: string, sourceCodeInfo?: SourceCodeInfo); } /** @deprecated Use UserError instead */ export type UserDefinedError = UserError; /** @deprecated Use UserError instead */ export declare const UserDefinedError: typeof UserError; /** @deprecated Use ReferenceError instead */ export type UndefinedSymbolError = ReferenceError; /** @deprecated Use ReferenceError instead */ export declare const UndefinedSymbolError: typeof ReferenceError; export declare function isDvalaError(error: unknown): error is DvalaError;