import { CrochetTest, World } from "../runtime"; import { CrochetPackage, PackageGraph, RestrictedCrochetPackage, Target } from "../runtime/pkg"; import { Plugin } from "../plugin"; export declare abstract class CrochetVM { readonly world: World; readonly registered_packages: Map; readonly loaded_packages: Set; constructor(); get ffi(): import("../runtime").ForeignInterface; reseed(seed: number): void; abstract read_file(filename: string): Promise; abstract load_native(filename: string): Promise<(_: Plugin) => Promise | void>; abstract initialise(): Promise; abstract prelude: string[]; load_source(filename: string, pkg: RestrictedCrochetPackage): Promise; load_crochet(filename: string, pkg: RestrictedCrochetPackage): Promise; register_package(name: string, pkg: CrochetPackage): Promise; read_package_from_file(filename: string): Promise; get_package(name: string): Promise; load_package(pkg: RestrictedCrochetPackage): Promise; load_graph(graph: PackageGraph, pkg: RestrictedCrochetPackage): Promise; resolve(filename: string, target: Target): Promise<{ graph: PackageGraph; pkg: RestrictedCrochetPackage; }>; run(scene: string): Promise; run_initialisation(): Promise; run_tests(filter: (_: CrochetTest) => boolean): Promise; show_error(error: unknown): Promise; format_error(error: unknown): string; }