import type { SDKMessage } from "./messages.js";
import type { ConversationStep, ConversationTurn } from "./types/conversation-types.js";
import type { InteractionUpdate } from "./types/delta-types.js";
export interface RunInteractionAccumulatorOptions {
    onStep?: (args: {
        step: ConversationStep;
    }) => void | Promise<void>;
    onDelta?: (args: {
        update: InteractionUpdate;
    }) => void | Promise<void>;
}
export declare class RunInteractionAccumulator {
    private readonly options;
    private readonly turns;
    private currentTurn;
    private lastFiredStepIndex;
    constructor(options?: RunInteractionAccumulatorOptions);
    conversation(): ConversationTurn[];
    finalAssistantText(): string | undefined;
    apply(update: InteractionUpdate): Promise<void>;
    flushPendingStep(): Promise<void>;
    private ensureCurrentTurn;
    private mergeIntoConversation;
    private onUserMessage;
    private onTextDelta;
    private onThinkingDelta;
    private onThinkingCompleted;
    private onTool;
    private didPreviousStepComplete;
}
export declare function accumulateSdkMessageStream(stream: AsyncIterable<SDKMessage>): Promise<ConversationTurn[]>;
export declare function sdkMessageToInteractionUpdate(message: SDKMessage): InteractionUpdate | undefined;
//# sourceMappingURL=run-interaction-accumulator.d.ts.map