import { type Environment } from "../env";
import type { Expr } from "../expr";
import type { Token } from "../token";
import type { StructValue } from "../value";
import type { LoadModuleFn } from "./context";
import { clearAllGlobalImplState, clearGenericImplsFromModule, clearImplsFromModule } from "./values/impl";
export { clearAllGlobalImplState, clearGenericImplsFromModule, clearImplsFromModule, };
export default class Evaluator {
    private inputString;
    private modulePath;
    private parser;
    private program;
    private tokens;
    private moduleValue;
    private moduleError;
    private env;
    private allowPartialModule;
    private registerPartialModule;
    constructor({ modulePath, stdPath, loadModule, inputString, allowPartialModule, registerPartialModule, }: {
        modulePath: string;
        stdPath: string;
        loadModule: LoadModuleFn;
        inputString?: string;
        allowPartialModule?: boolean;
        registerPartialModule?: (mv: StructValue) => void;
    });
    getProgram(): Expr[];
    getTokens(): Token[];
    private evaluateProgram;
    getModuleValue(): StructValue;
    getModuleError(): Error | undefined;
    getEnv(): Environment;
}
