import { AnchorHTMLAttributes, ButtonHTMLAttributes, CSSProperties, ReactNode, Ref } from "react";

//#region src/base-ui/Button/type.d.ts
type ButtonType = 'default' | 'primary' | 'dashed' | 'link' | 'text';
type ButtonShape = 'default' | 'circle' | 'round';
type ButtonSize = 'small' | 'middle' | 'large';
type ButtonIconPosition = 'start' | 'end';
interface BaseButtonOwnProps {
  block?: boolean;
  children?: ReactNode;
  classNames?: {
    icon?: string;
  };
  danger?: boolean;
  disabled?: boolean;
  ghost?: boolean;
  href?: string;
  htmlType?: ButtonHTMLAttributes<HTMLButtonElement>['type'];
  icon?: ReactNode;
  iconPosition?: ButtonIconPosition;
  loading?: boolean;
  ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;
  shape?: ButtonShape;
  size?: ButtonSize;
  styles?: {
    icon?: CSSProperties;
  };
  target?: string;
  type?: ButtonType;
}
type NativeButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonOwnProps | 'type'>;
type NativeAnchorProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonOwnProps | 'type'>;
type ButtonProps = BaseButtonOwnProps & NativeButtonProps & Partial<NativeAnchorProps>;
//#endregion
export { ButtonIconPosition, ButtonProps, ButtonShape, ButtonSize, ButtonType };
//# sourceMappingURL=type.d.mts.map