import { type Ref } from "vue"; export interface UsePinToSendOptions { scrollRef: Ref; contentRef: Ref; spacerRef: Ref; topOffset?: number; } /** * Vue counterpart of React's `usePinToSend` (`packages/react-core/src/v2/hooks/use-pin-to-send.ts`). * * Anchors the chat scroll container so the most recent user message stays * pinned near the top of the viewport while the assistant streams a * response beneath it. * * Implementation parity with React: * - Reads the latest user message via the `LastUserMessageContext` * equivalent (`LastUserMessageKey` + `Ref`). * - On each `sendNonce` increment, sizes the spacer to * `viewportHeight - bubbleHeight - topOffset` and scrolls so the bubble * sits `topOffset` from the viewport top (padding above the bubble is * pushed off-screen). * - Installs a shrink-only `ResizeObserver` on `contentRef` that collapses * the spacer as the assistant response grows; never grows it back. * - Cancels the scheduled `requestAnimationFrame` and disconnects the * `ResizeObserver` on subsequent re-runs and on scope dispose. */ export declare function usePinToSend({ scrollRef, contentRef, spacerRef, topOffset, }: UsePinToSendOptions): void; //# sourceMappingURL=use-pin-to-send.d.ts.map