import { VariantProps } from 'cva'; import { ElementType, ComponentPropsWithRef, ReactNode, FunctionComponent, JSX } from 'react'; type NonFunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T]; type NonFunctionProperties = Pick>; declare const buttonRecipe: (props?: ({ color?: "primary" | "secondary" | "tertiary" | undefined; size?: "small" | "large" | undefined; variant?: "text" | "outlined" | "contained" | undefined; } & ({ class?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined; className?: undefined; } | { class?: undefined; className?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined)[] | { [x: string]: any; } | null | undefined; })) | undefined) => string; type ButtonRecipeVariants = VariantProps; type BaseButtonProps = ButtonRecipeVariants & { left?: ReactNode; leftClassName?: string; right?: ReactNode; rightClassName?: string; innerClassName?: string; /** * @deprecated Use `innerClassName` instead */ textClassName?: string; }; type ButtonProps = BaseButtonProps & Omit, keyof BaseButtonProps | "as"> & { as?: T; }; type ButtonIconProps = Omit, keyof ButtonRecipeVariants | "as"> & ButtonRecipeVariants & { as?: T; innerClassName?: string; }; type ButtonComponent = NonFunctionProperties>> & { (props: ButtonProps): JSX.Element; Icon: ButtonIconComponent; }; type ButtonIconComponent = NonFunctionProperties>> & { (props: ButtonIconProps): JSX.Element; }; declare const Button: ButtonComponent<"button">; export { Button as B, type ButtonProps as a, type ButtonIconProps as b };