import type { RefCallback } from 'react'; import type React from 'react'; import type { GlobalAttributesT, XstyledProps, ValidationMap } from '@elliemae/ds-props-helpers'; import type { TypescriptHelpersT } from '@elliemae/ds-typescript-helpers'; import { BUTTON_SIZES, BUTTON_TYPES, BUTTON_SHAPES, ButtonInteractionStates } from '../../constants.js'; import { DSButtonName, DSButtonSlots } from './DSButtonDefinitions.js'; export declare namespace DSButtonT { type HTMLButtonTypeProp = 'button' | 'submit' | 'reset'; type ButtonSizesT = (typeof BUTTON_SIZES)[keyof typeof BUTTON_SIZES]; type ButtonTypesT = (typeof BUTTON_TYPES)[keyof typeof BUTTON_TYPES]; type ButtonShapesT = (typeof BUTTON_SHAPES)[keyof typeof BUTTON_SHAPES]; type ButtonInteractionStatesT = (typeof ButtonInteractionStates)[number]; interface DefaultProps { 'data-testid': string; size: ButtonSizesT; type: HTMLButtonTypeProp; buttonType: ButtonTypesT; onClick: (e: React.MouseEvent | React.KeyboardEvent) => void; shape: ButtonShapesT; applyAriaDisabled: boolean; readOnly: boolean; } interface OptionalProps extends TypescriptHelpersT.PropsForGlobalOnSlots { innerRef?: React.MutableRefObject | RefCallback; } interface RequiredProps { children: React.ReactNode | React.ReactNode[]; isV3: boolean; } interface Props extends Partial, OptionalProps, Omit, keyof DefaultProps | keyof OptionalProps | keyof RequiredProps>, XstyledProps, RequiredProps { } interface InternalProps extends DefaultProps, OptionalProps, Omit, keyof DefaultProps | keyof OptionalProps | keyof RequiredProps>, XstyledProps, RequiredProps { } interface StyledButtonInheritedDrilledProps extends Omit, keyof DefaultProps | keyof OptionalProps | keyof RequiredProps>, XstyledProps { type: DefaultProps['type']; innerRef?: OptionalProps['innerRef']; onClick: DefaultProps['onClick']; } } export declare const defaultProps: DSButtonT.DefaultProps; export declare const DSButtonPropTypes: ValidationMap;