import { Op, NumFmt, ObjectType } from "./bytecode";
import { DebugInfo } from "@devicescript/interop";
export * from "./bytecode";
import type ts from "typescript";
import { ResolvedBuildConfig } from "@devicescript/interop";
import { CompileFlags } from "./compiler";
export interface SMap<T> {
    [k: string]: T;
}
export declare function opTakesNumber(op: Op): boolean;
export declare function opNumRealArgs(op: Op): number;
export declare function opNumArgs(op: Op): number;
export declare function opType(op: Op): ObjectType;
export declare function opIsStmt(op: Op): boolean;
export declare function exprIsStateful(op: Op): boolean;
export declare function stmtIsFinal(op: Op): number;
export interface InstrArgResolver {
    describeCell?(fmt: string, idx: number): string;
    verboseDisasm?: boolean;
}
export declare function bitSize(fmt: NumFmt): number;
export declare function numfmtToString(v: number): string;
export interface DevsDiagnostic extends ts.Diagnostic {
    filename: string;
    line: number;
    column: number;
    endLine: number;
    endColumn: number;
    formatted: string;
}
export interface Host {
    write(filename: string, contents: Uint8Array | string): void;
    read(filename: string): string;
    resolvePath(filename: string): string;
    relativePath?(filename: string): string;
    log(msg: string): void;
    error?(err: DevsDiagnostic): void;
    getConfig(): ResolvedBuildConfig;
    verifyBytecode?(buf: Uint8Array, dbgInfo?: DebugInfo): void;
    isBasicOutput?(): boolean;
    getFlags?(): CompileFlags;
}
export declare function parseImgVersion(v: number): {
    major: number;
    minor: number;
    patch: number;
};
export declare function runtimeVersion(): string;
//# sourceMappingURL=format.d.ts.map