UNPKG

microvium

Version:

A compact, embeddable scripting engine for microcontrollers for executing small scripts written in a subset of JavaScript.

53 lines (52 loc) 2.2 kB
/// <reference types="node" /> /// <reference types="node" /> import { Format, HTML, VisualBufferHTMLContainer } from "./visual-buffer"; import { EventEmitter } from "events"; export declare type FutureLike<T> = T | Future<T>; export declare class BinaryRegion { private htmlTemplate?; private _segments; private _traceFile; constructor(htmlTemplate?: VisualBufferHTMLContainer | undefined, traceFilename?: string); append<T>(value: FutureLike<T>, label: string | undefined, format: Format<Labelled<T | undefined>>): void; padToEven(format: Format<Labelled<number | undefined>>): void; padToQuad(format: Format<Labelled<number | undefined>>, headerSize: number): void; appendBuffer(buffer: BinaryRegion, label?: string): void; toBuffer(enforceFinalized?: boolean): Buffer; toHTML(): HTML; get currentOffset(): Future<number>; postProcess<T>(start: Future<number>, end: Future<number>, process: (buffer: Buffer) => T): Future<T>; private appendSegment; private traceDump; private appendDirect; private appendFuture; private writeToBuffer; private toVisualBuffer; } export declare class Future<T = number> extends EventEmitter { lastValue: T | undefined; private _value; private _resolved; private _assigned; private _id; private _assignable; constructor(assignable?: boolean); toString(): string; assign(value: FutureLike<T>): undefined; map<U>(f: (v: T) => U): Future<U>; bind<U>(f: (v: T) => Future<U>): Future<U>; subtract(this: Future<number>, that: Future<number>): Future<number>; static create<T>(value: FutureLike<T>): Future<T>; static isFuture<T>(value: FutureLike<T>): value is Future<T>; static map<T, U>(value: FutureLike<T>, f: (v: T) => U): FutureLike<U>; static bind<T, U>(value: FutureLike<T>, f: (v: T) => FutureLike<U>): FutureLike<U>; static lift<T, U>(operation: (v: T) => U): (v: FutureLike<T>) => FutureLike<U>; get isResolved(): boolean; get value(): T; resolve(value: T): undefined; unresolve(): void; } export interface Labelled<T> { label?: string; value: T; }