import type { FunctionComponent, MouseEvent } from 'react'; import { ButtonProps, TooltipProps } from '@patternfly/react-core'; export interface ActionProps extends Omit { /** Aria-label for the button */ ariaLabel?: string; /** Aria-label for the button, shown when the button is clicked. */ clickedAriaLabel?: string; /** On-click handler for the button */ onClick?: ((event: MouseEvent | React.MouseEvent | KeyboardEvent) => void) | undefined; /** Class name for the button */ className?: string; /** Props to control if the attach button should be disabled */ isDisabled?: boolean; /** Content shown in the tooltip */ tooltipContent?: string; /** Content shown in the tooltip when the button is clicked. */ clickedTooltipContent?: string; /** Props to control the PF Tooltip component */ tooltipProps?: TooltipProps; /** Icon for custom response action */ icon?: React.ReactNode; /** Ref for response action button */ ref?: React.Ref; /** Whether content launched by button, such as the feedback form, is expanded */ 'aria-expanded'?: boolean; /** Id for content controlled by the button, such as the feedback form */ 'aria-controls'?: string; } type ExtendedActionProps = ActionProps & { [key: string]: any; }; /** * The various actions that can be attached to a bot message for users to interact with. * Use this component when passing children to Message to customize its structure. */ export interface ResponseActionProps { /** Props for message actions, such as feedback (positive or negative), copy button, share, and listen */ actions: Record & { positive?: ActionProps; negative?: ActionProps; copy?: ActionProps; share?: ActionProps; download?: ActionProps; listen?: ActionProps; edit?: ActionProps; }; /** When true, the selected action will persist even when clicking outside the component. * When false (default), clicking outside or clicking another action will deselect the current selection. */ persistActionSelection?: boolean; } export declare const ResponseActions: FunctionComponent; export default ResponseActions;