import type { ModelMessage, SystemModelMessage } from "ai";
import type { HistoryState } from "#context/keys.js";
import { type FrameworkMessageKind, type HarnessModelMessage } from "#harness/messages.js";
interface AddCurrentMessageOptions {
    readonly cacheFriendly?: boolean;
}
interface CurrentMessagesOptions {
    readonly historyState?: HistoryState;
    readonly currentTurnMessages?: readonly HarnessModelMessage[];
    readonly projectedMessages?: readonly HarnessModelMessage[];
}
/** Builds the model view and durable history for one step. */
export declare function createCurrentMessages(history: readonly HarnessModelMessage[], options?: CurrentMessagesOptions): {
    readonly history: readonly HarnessModelMessage[];
    readonly historyState: HistoryState;
    readonly nonSystemMessages: readonly HarnessModelMessage[];
    readonly systemMessages: readonly SystemModelMessage[];
    add(message: string, kind: FrameworkMessageKind, options?: AddCurrentMessageOptions): void;
    addAnnouncements(announcements: HistoryState): void;
    addSystem(messages: SystemModelMessage | readonly SystemModelMessage[]): void;
};
/** True when the history ends with a tool message carrying a tool-approval-response. */
export declare function hasTailApprovalResponse(messages: readonly ModelMessage[]): boolean;
export {};
