import React, { FC, MouseEventHandler } from 'react'; import { ButtonProps as ButtonPropsMui } from '@mui/material'; export declare type ButtonColor = 'primary' | 'secondary' | 'error' | 'success' | 'info'; export declare type ButtonVariant = 'contained' | 'outlined' | 'text'; export declare type ButtonSize = 'small' | 'medium' | 'large'; export interface ButtonProps extends ButtonPropsMui { /** * The content of the button. */ children?: React.ReactNode; /** * CSS class name */ className?: string; /** * The color of the button. */ color?: ButtonColor; /** * Whether the button should be disabled. */ disabled?: boolean; /** * An icon that will be shown before text. Must be an icon component. */ icon?: React.ReactNode; /** * On click handler. */ onClick?: MouseEventHandler; /** * The Link component of your router library of choice */ routerLink?: any; /** * The size of the button. */ size?: ButtonSize; /** * A router link. If `routerLink` is not passed, it is ignored. */ to?: string; /** * Button type. Button for normal type, submit for form submission, * reset to return all form values to its initial values. */ type?: 'submit' | 'reset' | 'button'; /** * The variant to use. */ variant?: ButtonVariant; /** * The component used for the root node. Either a string to use a HTML element or a component. */ component?: any; } export interface IconButtonProps { /** * CSS class name */ className?: string; /** * The icon to show. Must be an icon component. */ icon?: React.ReactNode; /** * On click handler. */ onClick?: MouseEventHandler; /** * The component used for the root node. Either a string to use a HTML element or a component. */ component?: any; } export interface UploadButtonProps { /** * Any button can be passed to the UploadButton, the component="span" props must be present. */ button: any; /** * The accept attribute value is an array of strings that defines the file types the file input should accept. * If it is not passed, every type of file will be accepted. */ accept?: string[]; /** * When multiple is true, the file input allows the user to select more than one file. */ multiple?: boolean; /** * onChange to be called when the file input changes. */ onChange?: (event: React.ChangeEvent) => any; } /** * Button is a basic component that allows users to take actions. */ export declare const Button: FC; /** * IconButton renders an icon button. */ export declare const IconButton: FC; /** * UploadButton allows users to upload files. */ export declare const UploadButton: FC;