import { type MouseEvent, type MutableRefObject, type ReactNode } from 'react';
import type { Promisable } from 'type-fest';
import type { string_chat_format_name } from '../save/_common/string_chat_format_name';
import type { ChatMessage } from '../types/ChatMessage';
import type { ChatParticipant } from '../types/ChatParticipant';
/**
 * Props for the Chat actions toolbar.
 *
 * @private component of `<Chat/>`
 */
export type ChatActionsBarProps = {
    actionsRef: MutableRefObject<HTMLDivElement | null>;
    actionsContainer?: HTMLElement | null;
    messages: ReadonlyArray<ChatMessage>;
    participants: ReadonlyArray<ChatParticipant>;
    title: string;
    onReset?: () => Promisable<void>;
    onUseTemplate?: () => void;
    extraActions?: ReactNode;
    saveFormats?: Array<string_chat_format_name>;
    isSaveButtonEnabled: boolean;
    shouldFadeActions: boolean;
    /**
     * Disables action interactions while scroll is active.
     */
    shouldDisableActions: boolean;
    onButtonClick: (handler?: (event: MouseEvent<HTMLButtonElement>) => void) => (event: MouseEvent<HTMLButtonElement>) => void;
};
/**
 * Renders the action buttons row for Chat.
 *
 * @private component of `<Chat/>`
 */
export declare function ChatActionsBar(props: ChatActionsBarProps): import("react/jsx-runtime").JSX.Element;
