import { type Operation } from "effection"; import type { CueEmission } from "../core/cues.js"; import type { AgentRuntime } from "./agent-runtime.js"; import type { Hab } from "./habbing.js"; /** * Host-facing sink for structured cue emissions. * * The shared runtime interprets cues into `CueEmission`s, then hands those * emissions to the active host. This keeps host delivery separate from habitat * semantics without reintroducing a root-owned transport queue. */ export interface CueSink { send(emission: CueEmission): Operation; } /** Default cue sink used when the host does not care about cue side effects. */ export declare const ignoreCueSink: CueSink; /** * Drain one bounded cue-processing pass for a shared runtime host. * * When a habitat is available, cue interpretation stays habitat-owned via * `Hab.processCuesIter()`. When no habitat can be resolved, cues are still * surfaced to the host as notify/transport emissions instead of being dropped. */ export declare function processCuesOnce(runtime: AgentRuntime, { hab, sink, }?: { hab?: Hab; sink?: CueSink; }): Operation; /** * Continuous cue doer for long-lived runtime hosts. * * This is the Effection analogue of the KERIpy `cueDo` loop: interpret any * pending cues, hand them to the host sink, yield, and repeat forever. */ export declare function cueDo(runtime: AgentRuntime, options?: { hab?: Hab; sink?: CueSink; }): Operation; //# sourceMappingURL=cue-runtime.d.ts.map