interface ChatUIResource { id: string; kind: string; attributes: Record; } interface ChatUIAction { id?: string; kind: string; resourceId?: string; label?: string; payload: Record; } interface ChatUISuggestion { label: string; value: string; } interface NormalizedChatUI { version: "1"; resources: ChatUIResource[]; actions: ChatUIAction[]; suggestions: ChatUISuggestion[]; } interface ChatUIRenderer { kind: string; render(resource: ChatUIResource, actions: ChatUIAction[]): T; } interface ChatUIRendererRegistry { register(renderer: ChatUIRenderer): () => void; render(resource: ChatUIResource, actions: ChatUIAction[]): T | undefined; has(kind: string): boolean; } declare function normalizeChatUI(value: unknown): NormalizedChatUI | null; declare function createChatUIRendererRegistry(initial?: ChatUIRenderer[]): ChatUIRendererRegistry; export { type ChatUIAction, type ChatUIRenderer, type ChatUIRendererRegistry, type ChatUIResource, type ChatUISuggestion, type NormalizedChatUI, createChatUIRendererRegistry, normalizeChatUI };