import type { BaseMessageActionConfig, TChatMessage, TMessageContent } from "../../../types/messages.js";
interface PopupState {
    open: boolean;
    messageId: string | null;
    actionType: string | null;
    anchorElement: HTMLElement | null;
    content: React.ReactNode | null;
    title: string | undefined;
    subtitle: string | undefined;
    actionConfig: BaseMessageActionConfig | null;
}
/**
 * Hook for managing action popup state in MessageList.
 * Handles opening, closing, and dynamic content/title updates for popups
 * triggered by message action buttons.
 *
 * @returns Popup state, open/close handlers, and whether the action popup should render.
 */
export declare function usePopup<TContent extends TMessageContent, TMessageMetadata>(): {
    popupState: PopupState;
    handleActionPopup: (message: TChatMessage<TContent, TMessageMetadata>, action: BaseMessageActionConfig, anchorElement: HTMLElement) => void;
    handlePopupOpenChange: (open: boolean) => void;
    showActionPopup: boolean;
};
export {};
