import { type ReactNode, type RefObject } from 'react'; import { type NativeRailItem } from './harness-conversation-layout.js'; export declare const WIDE_CONVERSATION_WIDTH_KEY = "arkme:conversation-content-width:v1"; export interface ConversationRailSpeaker { name: string; kind: 'human' | 'bot' | 'arko'; avatarRef: string; } export type ConversationRailItem = NativeRailItem & { speaker: ConversationRailSpeaker; responseSpeaker?: ConversationRailSpeaker; }; type RailAnchor = ConversationRailItem & { element: HTMLElement; }; /** Only supply preview content; native DSH still owns tooltip/hover/positioning. */ export declare function ConversationRailPreview({ speaker, text, response }: { speaker: ConversationRailSpeaker; text: string; response?: boolean; }): import("react").JSX.Element; export declare function conversationRailPreviewItems(items: readonly ConversationRailItem[]): NativeRailItem[]; /** Project existing rendered history only: no second history store or network read. */ export declare function readConversationRail(viewport: HTMLElement, turns: boolean): RailAnchor[]; export declare function conversationRailActive(viewport: HTMLElement, anchors: readonly RailAnchor[]): number | null; /** Capture an element, not scrollTop, so reflow does not move history under the reader. */ export declare function preserveConversationReading(viewport: HTMLElement, change: () => void): void; /** Arkme supplies data/scroll anchors; actual handles, rail and appearance are native DSH. */ export declare function ArkmeWideConversation({ children, enabled, scopeKey, viewportRef, turns, controlsHidden }: { children: ReactNode; enabled: boolean; scopeKey: string; viewportRef: RefObject; turns?: boolean; controlsHidden?: boolean; }): import("react").JSX.Element; export {}; //# sourceMappingURL=ArkmeWideConversation.d.ts.map