import { Machine, type AnyMachine } from './Machine'; import type { Config, ConfigTypes, IsAsyncConfig, Param, StateDefinition } from './types'; export type InterpreterOptions = { overflow?: number; } & (object extends TC ? { context?: TC; } : { context: TC; }); declare class Interpreter = ConfigTypes> { #private; protected _context: T['context']; protected _currentState: StateDefinition; constructor(machine: Machine, options?: InterpreterOptions); get machine(): Machine; protected readonly _initializeStates: () => void; protected readonly _setCurrentState: (value: string) => void; setInitialContext: (context: T["context"]) => void; readonly build: (...events: Param) => NonNullable; readonly buildAsync: (...events: Param) => Promise>; } export { type Interpreter }; type ReturnAsync = true extends Async ? (...events: Param) => Promise> : (...events: Param) => NonNullable; export declare function interpret(machine: M, options?: InterpreterOptions): ReturnAsync, M['__types']['events'], M['__types']['data']>; //# sourceMappingURL=interpreter.d.ts.map