import { default as React, ReactNode } from 'react'; export type StyledButtonType = 'contained' | 'outlined' | 'text' | 'textGray'; interface commonProps { refLink?: React.Ref; size?: 'large' | 'small' | 'medium'; startIcon?: ReactNode; endIcon?: ReactNode; dataTest: string; } interface variantTextGrayProps { variant?: 'textGray'; error?: never; } interface variantTextWhiteProps { variant?: 'textWhite'; error?: never; } interface buttonStandartVariantsProps { variant?: 'contained' | 'outlined' | 'text'; error?: boolean; } type conditionalProps = variantTextGrayProps | variantTextWhiteProps | buttonStandartVariantsProps; export type StyledButtonProps = React.ButtonHTMLAttributes & commonProps & conditionalProps; /** * Developer: daria.bogatiriov@carasent.com * * @remarks for icon button add only startIcon prop * @remarks for error button no textGray variant * * Custom props: * @param variant - 'contained' | 'outlined' | 'text' | 'textGray' * @param size - 'large' | 'small' | 'medium' * @param startIcon - ReactNode * @param endIcon - ReactNode * @param error - boolean * @param refLink - ref to component * @param dataTest - data-test tag */ export declare const StyledButton: ({ variant, className, size, children, refLink, startIcon, endIcon, dataTest, error, ...otherProps }: StyledButtonProps) => JSX.Element; export {};