import { AsgnStmt, NonAsgnStmt } from "./gen_parser"; export type Value = number | boolean | Callable | null | Value[] | string | ObjIntf; export type PossibleResolution = { resolved: false; } | Resolve; export type Resolution = { global: false; depth: number; offset: number; } | { global: true; }; type Resolve = T extends unknown ? T & { resolved: true; } : never; export type TypeCheck = (v: Value) => boolean; export type Stmt = AsgnStmt | NonAsgnStmt; export type Comparable = number | boolean | string; export type Ref = (v: Value) => void; export interface Callable { ainm: string; arity: () => number; call: (args: Value[]) => Promise; } export type Obj = string | Value[] | ObjIntf; export interface ObjIntf { ainm: string; getAttr: (id: string) => Value; setAttr: (id: string, v: Value) => void; } export declare function callFunc(x: Value, args: Value[]): Promise; export declare function idxList(ls: Value, idx: Value): Value; export declare class ObjIntfWrap implements ObjIntf { ainm: string; attrs: Map; constructor(ainm: string, attrs: [string[], Value][]); getAttr(id: string): Value; setAttr(): void; } export declare function goTéacs(v: Value): string; export declare function repr(v: Value): string; export {};