import { evaluationError } from './errors.js.js';
import { Base } from './operators.js.js';
import type { IASTNode, IContextBase, ITypeDeclaration, IRegistry } from './types.js.js';
import type { ResolvedOptions } from './options.js.js';
export declare class TypeChecker extends Base {
    createError: typeof evaluationError;
    constructor(opts: {
        registry: IRegistry;
        opts: ResolvedOptions;
    }, isEvaluating?: boolean);
    check(ast: IASTNode, ctx: IContextBase): ITypeDeclaration;
    checkAccessOnType(ast: IASTNode, ctx: IContextBase, leftType: ITypeDeclaration, allowMissingField?: boolean): ITypeDeclaration;
    formatType(type: ITypeDeclaration): string;
    formatTypeList(types: ITypeDeclaration[]): string;
}
