import { AnchorHTMLAttributes, DetailedHTMLProps, ReactEventHandler, ReactNode } from 'react'; import { IconName } from './icons/index.js'; import { InferComponentProps } from './types.js'; export type SizeKey = 'small' | 'medium' | 'mediumFull' | 'large' | 'largeFull' | 'extraLarge' | 'cardButton'; export type VariationKey = 'main' | 'outline' | 'shade' | 'white' | 'tan' | 'destructive' | 'accent' | 'buttonLink' | 'buttonLinkIcon' | 'buttonAction' | 'noOutline' | 'whiteOutline' | 'neutral'; export type IconPosition = 'left' | 'right'; export type StyledButtonProps = { wrap?: boolean; $isLoading?: boolean; variation?: VariationKey; size?: SizeKey; iconFilename?: IconName; iconPosition?: IconPosition; }; export declare const StyledButton: import("styled-components/dist/types.js").IStyledComponentBase<"web", import("styled-components/dist/types.js").Substitute, HTMLButtonElement>, StyledButtonProps>> & string; export type ButtonBaseProps = { children?: ReactNode; $isLoading?: boolean; onClick?: ReactEventHandler; } & InferComponentProps; declare const ButtonLink: import("styled-components/dist/types.js").IStyledComponentBase<"web", import("styled-components/dist/types.js").Substitute; className?: string; bold?: boolean; download?: boolean; rel?: string; } & InferComponentProps & import("react").HTMLAttributes, "bold" | "light" | "size" | keyof import("react").ClassAttributes | keyof import("react").HTMLAttributes | "boldType" | "$bold"> & { bold?: boolean; size?: "small" | "medium" | "large" | "regular"; boldType?: "bold" | "regular" | "semiBold"; $bold?: boolean; light?: boolean; } & import("react").ClassAttributes & import("react").HTMLAttributes, never>> & string>, never>, StyledButtonProps>> & string; type ButtonLinkProps = InferComponentProps; declare const ButtonAnchor: import("styled-components/dist/types.js").IStyledComponentBase<"web", import("styled-components/dist/types.js").Substitute, HTMLButtonElement>, keyof StyledButtonProps> & StyledButtonProps, DetailedHTMLProps, HTMLAnchorElement>>, never>, DetailedHTMLProps, HTMLAnchorElement>>> & string; type ButtonAnchorProps = InferComponentProps; /** * @deprecated use the wayfinder button instead Don't give it the `size` prop to default to a medium button. Buttons copy should not wrap, but if in the rare case you need it to, first try to get the copy shortened and if that is not a possibility, add the prop `wrap` If you give the `Button` component an href it will change the tag to an `` tag. If you give the button a truthy isLoading property, then it will show loading dots TODO: Add some standardized onClick tracking? **/ export declare const Button: import("styled-components/dist/types.js").IStyledComponentBase<"web", import("styled-components").FastOmit<{ children?: ReactNode; $isLoading?: boolean; onClick?: ReactEventHandler; } & InferComponentProps, HTMLButtonElement>, StyledButtonProps>> & string> & Pick & Pick & { isLoading?: boolean; asAnchor?: boolean; } & import("react").RefAttributes, never>> & string & Omit, HTMLButtonElement>, StyledButtonProps>> & string> & Pick & Pick & { isLoading?: boolean; asAnchor?: boolean; } & import("react").RefAttributes>, keyof import("react").Component>; export {};