import type { RunStreamEvent } from '../events';
export type AgentToolStreamBuffer = {
    maxPendingEvents: number;
    overflow: () => never;
};
export declare function setAgentToolStreamBuffer(runner: object, buffer: AgentToolStreamBuffer): void;
export declare function getAgentToolStreamBuffer(runner: object): AgentToolStreamBuffer | undefined;
export declare function createAgentToolStreamBuffer(maxPendingEvents: number, controller: AbortController): AgentToolStreamBuffer;
export declare function drainAgentToolStream(result: AsyncIterable<RunStreamEvent> & {
    completed: Promise<void>;
}, emit: (event: RunStreamEvent) => Promise<void>, signal: AbortSignal, controller: AbortController): Promise<void>;
