import type { id } from '../../../types/string_token';
import type { ChatMessage } from '../types/ChatMessage';
import type { ChatFeedbackMode, ChatProps } from './ChatProps';
/**
 * Props for the rating modal used in Chat.
 *
 * @private component of `<Chat/>`
 */
export type ChatRatingModalProps = {
    isOpen: boolean;
    selectedMessage: ChatMessage | null;
    postprocessedMessages: ReadonlyArray<ChatMessage>;
    messages: ReadonlyArray<ChatMessage>;
    hoveredRating: number;
    messageRatings: Map<id, number>;
    textRating: string;
    /**
     * Chooses which feedback flow the modal should render.
     */
    feedbackMode: ChatFeedbackMode;
    /**
     * Optional localized labels used by feedback controls.
     */
    feedbackTranslations?: ChatProps['feedbackTranslations'];
    mode: 'LIGHT' | 'DARK';
    isMobile: boolean;
    onClose: () => void;
    setHoveredRating: (value: number) => void;
    setMessageRatings: (value: Map<id, number> | ((previous: Map<id, number>) => Map<id, number>)) => void;
    setSelectedMessage: (value: ChatMessage | null) => void;
    setTextRating: (value: string) => void;
    submitRating: () => Promise<void>;
};
/**
 * Modal that captures per-message rating feedback.
 *
 * @private component of `<Chat/>`
 */
export declare function ChatRatingModal(props: ChatRatingModalProps): import("react/jsx-runtime").JSX.Element | null;
