import { Dict, Maybe, RuntimeOp, TemplateCompilationContext, Nullable, PresentArray, VmMachineOp, VmOp, BlockSymbolTable, ProgramSymbolTable, SimpleDocumentFragment, SimpleElement, SimpleNode } from "@glimmer/interfaces"; interface DebugConstants { getValue(handle: number): T; getArray(value: number): T[]; } declare function debugSlice(context: TemplateCompilationContext, start: number, end: number): void; declare function logOpcode(type: string, params: Maybe): string | void; declare function debug(c: DebugConstants, op: RuntimeOp, isMachine: 0 | 1): [ string, Dict ] | undefined; // TODO: How do these map onto constant and machine types? declare const OPERAND_TYPES: string[]; type OperandType = (typeof OPERAND_TYPES)[number]; interface Operand { type: OperandType; name: string; } type OperandList = ([ ] | [ Operand ] | [ Operand, Operand ] | [ Operand, Operand, Operand ]) & Operand[]; interface NormalizedMetadata { name: string; mnemonic: string; before: null; stackChange: Nullable; ops: OperandList; operands: number; check: boolean; } type Stack = [ string[], string[] ]; interface RawOperandMetadata { kind: "machine" | "syscall"; format: RawOperandFormat; skip?: true; operation: string; "operand-stack"?: [ string[], string[] ]; notes?: string; } type OperandName = `${string}:${string}`; type RawOperandFormat = OperandName | PresentArray; declare function normalize(key: string, input: RawOperandMetadata): NormalizedMetadata; interface NormalizedOpcodes { readonly machine: Dict; readonly syscall: Dict; } declare function normalizeAll(parsed: { machine: Dict; syscall: Dict; }): NormalizedOpcodes; declare function normalizeParsed(parsed: Dict): Dict; declare function buildEnum(name: string, parsed: Dict, offset: number, max?: number): { enumString: string; predicate: string; }; declare function strip(strings: TemplateStringsArray, ...args: unknown[]): string; declare const META_KIND: string[]; type META_KIND = (typeof META_KIND)[number]; declare function buildSingleMeta>(kind: META_KIND, all: D, key: keyof D): string; declare function buildMetas(kind: META_KIND, all: Dict): string; declare function opcodeMetadata(op: VmMachineOp | VmOp, isMachine: 0 | 1): Nullable; interface Checker { type: T; validate(value: unknown): value is T; expected(): string; } declare function wrap(checker: () => Checker): Checker; interface Constructor extends Function { prototype: T; } type Primitive = undefined | null | boolean | number | string; interface SafeString { toHTML(): string; } declare function CheckInstanceof(Class: Constructor): Checker; declare function CheckOption(checker: Checker): Checker>; declare function CheckMaybe(checker: Checker): Checker>; declare function CheckInterface>>(obj: O): Checker; declare function CheckArray(obj: Checker): Checker; declare function CheckDict(obj: Checker): Checker>; declare function check(value: unknown, checker: Checker, message?: (value: unknown, expected: string) => string): T; declare function check(value: T, checker: (value: T) => asserts value is U): U; declare function recordStackSize(sp: number): void; declare const CheckPrimitive: Checker; declare const CheckFunction: Checker; declare const CheckNumber: Checker; declare const CheckBoolean: Checker; declare const CheckHandle: Checker; declare const CheckString: Checker; declare const CheckUndefined: Checker; declare const CheckUnknown: Checker; declare const CheckSafeString: Checker; declare const CheckObject: Checker; declare function CheckOr(left: Checker, right: Checker): Checker; declare const CheckBlockSymbolTable: Checker; declare const CheckProgramSymbolTable: Checker; declare const CheckElement: Checker; declare const CheckDocumentFragment: Checker; declare const CheckNode: Checker; export { debug, debugSlice, logOpcode, buildEnum, buildMetas, buildSingleMeta, META_KIND, normalize, normalizeAll, normalizeParsed, OPERAND_TYPES, strip, opcodeMetadata, check, CheckArray, CheckBlockSymbolTable, CheckBoolean, CheckDict, CheckDocumentFragment, CheckElement, CheckFunction, CheckHandle, CheckInstanceof, CheckInterface, CheckMaybe, CheckNode, CheckNumber, CheckObject, CheckOption, CheckOr, CheckPrimitive, CheckProgramSymbolTable, CheckSafeString, CheckString, CheckUndefined, CheckUnknown, recordStackSize, wrap }; export type { NormalizedMetadata, NormalizedOpcodes, Operand, OperandList, OperandName, OperandType, RawOperandFormat, RawOperandMetadata, Stack, Checker }; //# sourceMappingURL=index.d.cts.map