///
export interface ChatMessagesState {
/** Whether the reader is at the live edge (scrolled to the bottom). */
atBottom: boolean;
/**
* Ids of the registered messages currently intersecting the viewport, in
* document order. Only messages given a `messageId` are tracked.
*/
visibleMessageIds: string[];
}
export interface ChatMessagesActions {
/** Scrolls the conversation to the live edge. */
scrollToBottom: (behavior?: ScrollBehavior) => void;
/** Scrolls the message registered with the given `messageId` into view. */
scrollToMessage: (id: string, options?: {
behavior?: ScrollBehavior;
}) => void;
}
export interface ChatMessageRegistration {
id?: string;
scrollAnchor?: boolean;
}
export interface ChatMessagesRegistry {
register: (element: HTMLElement, registration: ChatMessageRegistration) => () => void;
}
export declare const ChatMessagesStateContext: import("react").Context;
export declare const ChatMessagesActionsContext: import("react").Context;
export declare const ChatMessagesRegistryContext: import("react").Context;
export declare function useChatMessagesState(part: string): ChatMessagesState;
export declare function useChatMessagesActions(part: string): ChatMessagesActions;
export interface UseChatMessagesReturn extends ChatMessagesState, ChatMessagesActions {
}
/**
* Scroll state and commands for the enclosing `Chat.Messages`: `atBottom`,
* `visibleMessageIds`, `scrollToBottom` and `scrollToMessage`.
*/
export declare function useChatMessages(): UseChatMessagesReturn;
//# sourceMappingURL=chat-context.d.ts.map