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;