import { type HTMLAttributes, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; declare const rootVariants: (props?: ({ density?: "default" | "compact" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface ChatContainerHandle { scrollToBottom: (opts?: { smooth?: boolean; }) => void; /** * Escape hatch for host code that needs the live scroll element * (measuring, custom scroll restoration). NOT an agent surface: the * node's subtree is the conversation itself, which is PHI-bearing in * the Alia surfaces, and PRS §26 §7 limits state slots to identifiers * and structural state. The adapter deliberately does not expose it. */ getScrollViewport: () => HTMLDivElement | null; /** * True when the viewport is pinned to the newest message (within * `BOTTOM_SLACK_PX`). The read-back for `scroll_to_bottom`. */ isAtBottom: () => boolean; /** Number of messages currently rendered. Count only — never content. */ getMessageCount: () => number; } export interface ChatContainerProps extends Omit, 'children' | 'id'>, VariantProps { /** Opaque instance id — emitted as `data-component-id` for the agent registry. */ id?: string; /** Array of messages to render. When the array exceeds 100 items the * list is virtualised via @tanstack/react-virtual. */ messages: Array<{ id: string; node: ReactNode; }>; /** Composer slot pinned to the block-end. */ composer?: ReactNode; /** Fires when the user's auto-scroll preference flips. */ onAutoScrollChange?: (isAtBottom: boolean) => void; /** * When true, renders a "scroll to latest" FloatingActionButton in the * bottom-end of the scroll column whenever the user has scrolled * away from the newest message. Defaults to `false` because the * affordance is only useful in long-form chat surfaces (fullscreen * assistants, dedicated messaging views); in compact docks — e.g. the * Alia side-panel — conversations rarely exceed one screen and the FAB * just adds visual noise. Turn on for fullscreen chat surfaces. */ showScrollToLatest?: boolean; } export declare const ChatContainer: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=chat-container.d.ts.map