import type { ResultStateSize, ResultStateType } from '@mezzanine-ui/core/result-state'; import { ReactElement } from 'react'; import type { ButtonProps } from '../Button'; import { NativeElementPropsWithoutKeyAndRef } from '../utils/jsx-types'; /** * Single button configuration - only secondary button is allowed */ type SingleButtonAction = { secondaryButton: ButtonProps; primaryButton?: never; }; /** * Two buttons configuration - both secondary and primary buttons */ type TwoButtonsAction = { secondaryButton: ButtonProps; primaryButton: ButtonProps; }; /** * Actions can be either single button or two buttons */ export type ResultStateActions = SingleButtonAction | TwoButtonsAction; export interface ResultStateProps extends NativeElementPropsWithoutKeyAndRef<'div'> { /** * Action buttons configuration. * - Single button: Only `secondaryButton` (ButtonProps) * - Two buttons: Both `secondaryButton` and `primaryButton` */ actions?: ResultStateActions; /** * Child button elements for actions.
* Can be a single Button element or an array of one or two Button elements.
* When using children, the first Button is treated as secondary and the second as primary.
* If only one Button is provided, it is treated as secondary.
* If actions provided, children will be ignored.
*/ children?: ReactElement | [ReactElement] | [ReactElement, ReactElement]; /** * Optional description text displayed below the title. * Provides additional context or details about the result state. */ description?: string; /** * The size variant of the result state. * Controls typography, spacing, and overall dimensions. * @default 'main' */ size?: ResultStateSize; /** * The title text for the result state. * This is the main heading that describes the state. */ title: string; /** * The type of result state, which determines the icon and color theme. * @default 'information' */ type?: ResultStateType; } declare const ResultState: import("react").ForwardRefExoticComponent>; export default ResultState;