import React, { PureComponent } from 'react'; import { A11yProps } from '../_utils/interfaces'; export declare enum ButtonStatus { PRIMARY = "primary", SECONDARY = "secondary", TERTIARY = "tertiary", WARNING = "warning", FACEBOOK = "facebook", VKONTAKTE = "vkontakte", UNSTYLED = "unstyled", LOADING = "loading", CHECKED = "checked" } export declare type ButtonProps = A11yProps & Readonly<{ children: string | number | React.ReactNode; type?: string; href?: string | JSX.Element; className?: string; status?: ButtonStatus; focus?: boolean; isBubble?: boolean; shadowed?: boolean; onClick?: (event: React.MouseEvent) => void; onBlur?: (event: React.FocusEventHandler) => void; onFocus?: (event: React.FocusEventHandler) => void; onMouseDown?: (event: React.MouseEvent) => void; onMouseUp?: (event: React.MouseEvent) => void; onTouchStart?: (event: React.TouchEvent) => void; onTouchEnd?: (event: React.TouchEvent) => void; onDoneAnimationEnd?: () => void; disabled?: boolean; index?: string; buttonRef?: (button: HTMLButtonElement) => void; target?: HTMLLinkElement['target']; rel?: HTMLLinkElement['rel']; }>; export declare type ButtonState = Readonly<{ value: { name: string; value: string; }; }>; declare type ButtonActionEvents = React.MouseEvent | React.TouchEvent | React.FocusEventHandler; declare type functionEvent = (event: ButtonActionEvents) => void; export declare const eventHandler: (componentEvent: functionEvent, childEvent: functionEvent) => (event: ButtonActionEvents) => void; export declare class Button extends PureComponent { private button; static defaultProps: Partial; componentDidMount(): void; componentDidUpdate(prevProps: ButtonProps): void; ref: (button: HTMLButtonElement) => void; render(): React.FunctionComponentElement<{ title?: string; id?: string; role?: string; tabIndex?: number; 'aria-controls'?: string; 'aria-describedby'?: string; 'aria-label'?: string; 'aria-labelledby'?: string; target?: string; rel?: string; ref?: (button: HTMLButtonElement) => void; href?: string; type?: string; onClick?: (event: React.MouseEvent) => void; onFocus?: (event: (event: React.FocusEvent) => void) => void; onBlur?: (event: (event: React.FocusEvent) => void) => void; onMouseDown?: (event: React.MouseEvent) => void; onMouseUp?: (event: React.MouseEvent) => void; onTouchStart?: (event: React.TouchEvent) => void; onTouchEnd?: (event: React.TouchEvent) => void; disabled?: boolean; index?: string; className: string; }>; } export {};