import type { Node } from './data-model/types.ts';
/**
 * Base error class used by MessageFormat
 *
 * @category Errors
 */
export declare class MessageError extends Error {
    type: string;
    constructor(type: string, message: string);
}
/**
 * Errors in the message syntax.
 *
 * @category Errors
 */
export declare class MessageSyntaxError extends MessageError {
    type: 'empty-token' | 'bad-escape' | 'bad-input-expression' | 'duplicate-attribute' | 'duplicate-declaration' | 'duplicate-option-name' | 'duplicate-variant' | 'extra-content' | 'key-mismatch' | 'parse-error' | 'missing-fallback' | 'missing-selector-annotation' | 'missing-syntax';
    start: number;
    end: number;
    /** @private */
    constructor(type: typeof MessageSyntaxError.prototype.type, start: number, end?: number, expected?: string);
}
/**
 * Errors in the message data model.
 *
 * @category Errors
 */
export declare class MessageDataModelError extends MessageSyntaxError {
    type: 'duplicate-declaration' | 'duplicate-variant' | 'key-mismatch' | 'missing-fallback' | 'missing-selector-annotation';
    /** @private */
    constructor(type: typeof MessageDataModelError.prototype.type, node: Node);
}
/**
 * Message runtime resolution errors
 *
 * @category Errors
 */
export declare class MessageResolutionError extends MessageError {
    type: 'bad-function-result' | 'bad-selector' | 'no-match' | 'unknown-function' | 'unresolved-variable';
    source: string;
    cause?: unknown;
    constructor(type: typeof MessageResolutionError.prototype.type, message: string, source: string, cause?: unknown);
}
/**
 * Message runtime resolution errors
 *
 * @category Errors
 */
export declare class MessageFunctionError extends MessageError {
    type: 'bad-operand' | 'bad-option' | 'bad-variant-key' | 'function-error' | 'not-formattable' | 'unsupported-operation';
    source: string;
    cause?: unknown;
    constructor(type: typeof MessageFunctionError.prototype.type, message: string);
}
