import { z as PolicyConversationItem, m as PolicyQueryContext, b as PolicyAIMessage } from '../../../policy-ai-panel-BxCySZjc.js'; export { P as PolicyAIFAB, a as PolicyAIFABProps, c as PolicyAIPanel, d as PolicyAIPanelProps, e as PolicyBankVerdict, f as PolicyCitationItem, g as PolicyCitationPanel, h as PolicyCitationPanelProps, i as PolicyComparisonTable, j as PolicyComparisonTableProps, k as PolicyQueryChip, l as PolicyQueryChipProps, n as PolicyQueryType, o as PolicyRankedBankItem, p as PolicyRankedList, q as PolicyRankedListProps, r as PolicyResponseContent, s as PolicySingleBankAnswer, t as PolicySingleBankAnswerProps, u as PolicySummaryCounts, v as PolicyType, w as PolicyVerdict, x as PolicyVerdictBadge, y as PolicyVerdictBadgeProps } from '../../../policy-ai-panel-BxCySZjc.js'; import * as react_jsx_runtime from 'react/jsx-runtime'; interface PolicyAIHistoryPanelProps { conversations: PolicyConversationItem[]; activeId?: string; onSelect?: (id: string) => void; onNewChat?: () => void; searchQuery?: string; onSearchChange?: (q: string) => void; /** Whether more conversations can be loaded (cursor pagination). */ hasMore?: boolean; /** Load the next page of conversations. */ onLoadMore?: () => void; /** Whether a load-more request is in flight. */ isLoadingMore?: boolean; className?: string; } /** * Left sidebar for the Policy AI dedicated page. * Visual pattern mirrors ConversationList + ConversationListItem: * - Header bar with "New Chat" button * - Search input (same style as ConversationList) * - List of Policy AI sessions using avatar + title + timestamp layout * * @example * setMessages([])} * /> */ declare function PolicyAIHistoryPanel({ conversations, activeId, onSelect, onNewChat, searchQuery, onSearchChange, hasMore, onLoadMore, isLoadingMore, className, }: PolicyAIHistoryPanelProps): react_jsx_runtime.JSX.Element; interface PolicyAIContextSidebarProps { /** Context detected from the most recent query (absent in home state). */ lastQueryContext?: PolicyQueryContext; /** Follow-up question suggestions shown below the query context. */ suggestedFollowUps?: string[]; /** Called when user clicks a suggested follow-up question. */ onFollowUpClick?: (question: string) => void; /** Number of banks indexed. Defaults to 0. */ bankCount?: number; /** Number of policy categories indexed. Defaults to 0. */ categoryCount?: number; /** Human-readable date of last policy update. Defaults to the current month. */ lastUpdated?: string; className?: string; } /** * Right sidebar for the Policy AI dedicated page. * Displays: * - Coverage stats (banks + categories indexed) * - Last query context as a source reference card * - Suggested follow-up questions * * @example * */ declare function PolicyAIContextSidebar({ lastQueryContext, suggestedFollowUps, onFollowUpClick, bankCount, categoryCount, lastUpdated, className, }: PolicyAIContextSidebarProps): react_jsx_runtime.JSX.Element; interface PolicyAIPageProps { messages?: PolicyAIMessage[]; suggestedQuestions?: Record; isStreaming?: boolean; isLoading?: boolean; thinkingSteps?: string[]; onSendMessage?: (text: string) => void; onAttachFile?: (files: FileList) => void; onAttachImage?: (files: FileList) => void; onReset?: () => void; /** True when older messages can be loaded for the active conversation. */ hasMoreMessages?: boolean; /** True while a `onLoadMoreMessages` request is in flight. */ isLoadingMoreMessages?: boolean; /** Fired when the user scrolls near the top of the chat — fetch older messages. */ onLoadMoreMessages?: () => void; conversations?: PolicyConversationItem[]; activeConversationId?: string; onSelectConversation?: (id: string) => void; onNewChat?: () => void; /** Whether more conversations can be loaded (cursor pagination). */ hasMoreConversations?: boolean; /** Load the next page of conversations. */ onLoadMoreConversations?: () => void; /** Whether a conversations load-more request is in flight. */ isLoadingMoreConversations?: boolean; /** * Notified when the history search query changes. Use to drive a server-side * search (the panel always also filters the current list client-side). */ onSearchConversations?: (query: string) => void; /** * Whether the context panel starts visible. * Renamed from `showContextPanel` to make uncontrolled semantics explicit — * the toggle button owns the state after mount. */ defaultShowContextPanel?: boolean; bankCount?: number; categoryCount?: number; lastUpdated?: string; /** * Suggested follow-up questions (e.g. backend-generated). When provided, these * override the built-in `deriveFollowUps` heuristic; falls back to it when omitted. */ suggestedFollowUps?: string[]; /** Opens the Support Agent panel — wired to PageTopBar "Ask Support" button. */ onAskSupport?: () => void; className?: string; } /** * Dedicated full-page layout for the Policy AI feature. * * 3-panel layout modelled on the AI Conversations page: * - **Left** (260px): `PolicyAIHistoryPanel` — recent conversations + search * - **Center** (flex-1): `PolicyAIPanel` in inline mode — chat + response cards * - **Right** (280px, toggle-able): `PolicyAIContextSidebar` — coverage stats + * last query context + suggested follow-ups * * @example * */ declare function PolicyAIPage({ messages, suggestedQuestions, isStreaming, isLoading, thinkingSteps, onSendMessage, onAttachFile, onAttachImage, onReset, hasMoreMessages, isLoadingMoreMessages, onLoadMoreMessages, conversations, activeConversationId, onSelectConversation, onNewChat, hasMoreConversations, onLoadMoreConversations, isLoadingMoreConversations, onSearchConversations, defaultShowContextPanel, bankCount, categoryCount, lastUpdated, suggestedFollowUps, onAskSupport, className, }: PolicyAIPageProps): react_jsx_runtime.JSX.Element; export { PolicyAIContextSidebar, type PolicyAIContextSidebarProps, PolicyAIHistoryPanel, type PolicyAIHistoryPanelProps, PolicyAIMessage, PolicyAIPage, type PolicyAIPageProps, PolicyConversationItem, PolicyQueryContext };