import { type ComponentPropsWithRef, type ElementType } from 'react'; import type { ButtonType, ChildrenProps, ClickEvents, SizesDictionaryType, StyleProps } from './shared'; export type ControlButtonSize = keyof S extends never ? SizesDictionaryType : 'small' | 'medium' | 'large' | S; export interface ControlButtonBaseProps extends ChildrenProps, StyleProps, ClickEvents { isDisabled?: boolean; isSubtle?: boolean; isSymmetrical?: boolean; size?: ControlButtonSize; } export type ControlButtonProps = { elementType?: E; type?: ButtonType; } & ControlButtonBaseProps; export type SpiritControlButtonProps = ControlButtonProps & ComponentPropsWithRef;