import { HCEvalContext } from './HyperCardExpression'; import { HCAction, HCEventHandlers } from './HyperCardModel'; import { HCOpenStack } from './HyperCardUtils'; /** Hard guard: max interpreter steps per dispatch (prevents tab-freezing loops). */ export declare const STEP_BUDGET = 100000; /** Hard guard: max chained navigations within a single run. */ export declare const NAV_DEPTH_CAP = 64; /** Hard guard: max counted-repeat iterations. */ export declare const REPEAT_CAP = 100000; type InternalAction = { do: "@closeCard"; } | { do: "@switchCard"; to: string; back: boolean; } | { do: "@transition"; effect: string; } | { do: "@openCard"; }; type EngineAction = HCAction | InternalAction; export declare function makeEvalContext(open: HCOpenStack): HCEvalContext; /** Drive the interpreter until it drains or suspends. */ export declare function drive(open: HCOpenStack): void; /** * Begin running an action list. Dropped (re-entrancy gate) if the interpreter * is already busy — HyperCard is modally blocking during ask/answer/wait. */ export declare function startRun(open: HCOpenStack, actions: EngineAction[]): void; /** Run a stack's onOpenStack handler then the current card's onOpenCard. */ export declare function runStackOpen(open: HCOpenStack): void; /** Run the handler for an event on a specific part (e.g. a button's onMouseUp). */ export declare function runPartEvent(open: HCOpenStack, partId: string, event: keyof HCEventHandlers): void; /** Resume a suspended `answer`/`ask` with the user's response. */ export declare function resumeDialog(open: HCOpenStack, result: string, token?: string): void; /** Resume a suspended `wait` when its timer fires. */ export declare function resumeWait(open: HCOpenStack, token?: string): void; /** Resume a suspended card transition when its animation completes. */ export declare function resumeTransition(open: HCOpenStack, token?: string): void; /** Resume a blocking plugin command (ctx.await) with the handler's result. */ export declare function resumeCustom(open: HCOpenStack, result: string, token?: string): void; /** Remove consumed pending effects by id (idempotent). */ export declare function consumeEffects(open: HCOpenStack, ids: number[]): void; export {}; //# sourceMappingURL=HyperCardEngine.d.ts.map