import type { Message } from "../types.js"; /** Input payload for AG-UI before stream message. */ export type AgUiBeforeStreamMessageInput = Omit & { id?: string; /** * Mark a system message as trusted server-generated content. * * By default, system-role messages from `beforeStream` hooks are downgraded * to user-role with boundary markers to prevent prompt injection via RAG * content. Set `trusted: true` only for server-generated instructions. */ trusted?: boolean; }; /** Context for AG-UI before stream. */ export interface AgUiBeforeStreamContext { request: Request; messages: Message[]; context: Record; lastUserText: string; } /** Result returned from AG-UI before stream. */ export interface AgUiBeforeStreamResult { prepend?: AgUiBeforeStreamMessageInput[]; append?: AgUiBeforeStreamMessageInput[]; replaceMessages?: AgUiBeforeStreamMessageInput[]; context?: Record; } /** Public API contract for AG-UI before stream. */ export type AgUiBeforeStream = (input: AgUiBeforeStreamContext) => void | Response | AgUiBeforeStreamResult | Promise; export declare function extractLastUserText(messages: Array<{ role: string; parts: unknown[]; }>): string; export declare function applyBeforeStreamResult(baseMessages: Message[], result: AgUiBeforeStreamResult | undefined): Message[]; //# sourceMappingURL=before-stream.d.ts.map