import { ComponentProps, ElementType, ReactElement, ReactNode } from "react"; import { Link } from "react-router-dom"; import { LayoutProps, SpaceProps } from "styled-system"; export declare const scales: { readonly MD: "md"; readonly SM: "sm"; readonly XS: "xs"; }; export declare const variants: { readonly PRIMARY: "primary"; readonly SECONDARY: "secondary"; readonly TERTIARY: "tertiary"; readonly TEXT: "text"; readonly DANGER: "danger"; readonly SUBTLE: "subtle"; readonly SUCCESS: "success"; }; export declare type Scale = typeof scales[keyof typeof scales]; export declare type Variant = typeof variants[keyof typeof variants]; /** * @see https://www.benmvp.com/blog/polymorphic-react-components-typescript/ */ export declare type AsProps = { as?: E; }; export declare type MergeProps = AsProps & Omit, keyof AsProps>; export declare type PolymorphicComponentProps = P & MergeProps; export declare type PolymorphicComponent = (props: PolymorphicComponentProps) => ReactElement | null; export interface BaseButtonProps extends LayoutProps, SpaceProps { as?: "a" | "button" | typeof Link; external?: boolean; isLoading?: boolean; scale?: Scale; variant?: Variant; disabled?: boolean; startIcon?: ReactNode; endIcon?: ReactNode; } export declare type ButtonProps

= PolymorphicComponentProps;