import type { SubagentAuthorizationEventHookPayload, SubagentInputRequestHookPayload } from "#channel/types.js";
import type { ContextContainer } from "#context/container.js";
import { type DurableSession, type DurableSessionState } from "#execution/durable-session-store.js";
import type { AnswerHookRoute } from "#harness/proxy-input-requests.js";
import type { TaskInputRequestDelivery } from "#tasks/types.js";
type SubagentEventHookPayload = SubagentAuthorizationEventHookPayload | SubagentInputRequestHookPayload;
interface ProxySubagentEventResult {
    readonly serializedContext: Record<string, unknown>;
    readonly sessionState: DurableSessionState;
}
/** Proxies one child event through its parent channel across a durable step boundary. */
export declare function runProxySubagentEventStep(input: {
    readonly answerHook?: AnswerHookRoute;
    readonly hookPayload: SubagentEventHookPayload;
    readonly sessionWritable: WritableStream<Uint8Array>;
    readonly serializedContext: Record<string, unknown>;
    readonly sessionState: DurableSessionState;
}): Promise<ProxySubagentEventResult>;
/** Emits a task request whose proxy routes were committed by a prior step. */
export declare function emitRecordedTaskInputRequestStep(input: {
    readonly request: TaskInputRequestDelivery;
    readonly sessionWritable: WritableStream<Uint8Array>;
    readonly serializedContext: Record<string, unknown>;
    readonly sessionState: DurableSessionState;
}): Promise<ProxySubagentEventResult>;
/** Applies one proxied child event to an already-hydrated parent context. */
export declare function emitProxiedSubagentEvent(input: {
    readonly answerHook?: AnswerHookRoute;
    readonly ctx: ContextContainer;
    readonly durableSession: DurableSession;
    readonly hookPayload: SubagentEventHookPayload;
    readonly sessionWritable: WritableStream<Uint8Array>;
    readonly recordProxyInputRequests?: boolean;
}): Promise<ProxySubagentEventResult>;
export {};
