import type { PropsWithoutRef, RefAttributes } from 'react'; import type { PressableProps } from 'react-native'; export interface InterfaceButtonProps extends PressableProps { /** * If true, the button will be in hovered state. */ isHovered?: boolean; /** * If true, the button will be in pressed state. */ isPressed?: boolean; /** * If true, the button will be focused. */ isFocused?: boolean; /** * If true, the button focus ring will be visible. */ isFocusVisible?: boolean; /** * If true, the button will be disabled. */ isDisabled?: boolean; } export interface IButtonGroupProps { /** * The direction of the Stack Items. * @default row */ flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse'; /** * */ children: JSX.Element | Array; /** * If true, the button will be disabled. */ isDisabled?: boolean; /** * If true, button will be atttached together. */ isAttached?: boolean; reversed?: boolean; isReversed?: boolean; } export type IButtonComponentType = React.ForwardRefExoticComponent & RefAttributes> & { Group: React.ForwardRefExoticComponent & PropsWithoutRef>; Spinner: React.ForwardRefExoticComponent & React.RefAttributes>; Text: React.ForwardRefExoticComponent & PropsWithoutRef>; Icon: React.ForwardRefExoticComponent & PropsWithoutRef>; }; export type IButtonProps = InterfaceButtonProps;