/** * @import { Site } from "@helios-lang/compiler-utils" * @import { AssertExtends } from "@helios-lang/type-utils" * @import { CekContext, CekFrame, CekStack, CekStateChange, CekTerm, CekValue } from "../index.js" */ /** * @typedef {object} PreCallFrame * @prop {(value: CekValue, ctx: CekContext) => CekStateChange} reduce */ /** * @typedef {AssertExtends} _PreCallFrameExtendsCekFrame */ /** * @param {CekTerm} arg * @param {CekStack} stack * @param {Site | undefined} callSite * @returns */ export function makePreCallFrame(arg: CekTerm, stack: CekStack, callSite: Site | undefined): PreCallFrameImpl; export type PreCallFrame = { reduce: (value: CekValue, ctx: CekContext) => CekStateChange; }; export type _PreCallFrameExtendsCekFrame = AssertExtends; import type { CekTerm } from "../index.js"; import type { CekStack } from "../index.js"; import type { Site } from "@helios-lang/compiler-utils"; /** * @implements {PreCallFrame} */ declare class PreCallFrameImpl implements PreCallFrame { /** * @param {CekTerm} arg * @param {CekStack} stack * @param {Site | undefined} callSite */ constructor(arg: CekTerm, stack: CekStack, callSite: Site | undefined); /** * @private * @readonly * @type {CekTerm} */ private readonly _arg; /** * @private * @readonly * @type {CekStack} */ private readonly _stack; /** * @private * @readonly * @type {Site | undefined} */ private readonly _callSite; /** * @param {CekValue} value - fn value * @param {CekContext} ctx * @returns {CekStateChange} */ reduce(value: CekValue, ctx: CekContext): CekStateChange; } import type { CekValue } from "../index.js"; import type { CekContext } from "../index.js"; import type { CekStateChange } from "../index.js"; import type { CekFrame } from "../index.js"; import type { AssertExtends } from "@helios-lang/type-utils"; import type { CekValue as CekValue_1 } from "../index.js"; import type { CekContext as CekContext_1 } from "../index.js"; import type { CekStateChange as CekStateChange_1 } from "../index.js"; export {}; //# sourceMappingURL=PreCallFrame.d.ts.map