import React, { Component, ReactNode } from 'react'; import PropTypes from 'prop-types'; import { Base16Theme } from 'base16'; export declare type TooltipPosition = 'top' | 'bottom' | 'left' | 'right' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'; export declare type Size = 'big' | 'normal' | 'small'; export declare type Mark = 'base08' | 'base09' | 'base0A' | 'base0B' | 'base0C' | 'base0D' | 'base0E' | 'base0F'; export interface ButtonProps { children: ReactNode; title?: string; tooltipPosition: TooltipPosition; onClick?: React.MouseEventHandler; type?: 'button' | 'reset' | 'submit'; disabled?: boolean; primary?: boolean; size?: Size; mark?: Mark | false; theme?: Base16Theme; } export default class Button extends Component { shouldComponentUpdate(nextProps: ButtonProps): boolean; onMouseUp: React.MouseEventHandler; render(): JSX.Element; static propTypes: { children: PropTypes.Validator; title: PropTypes.Requireable; tooltipPosition: PropTypes.Requireable; onClick: PropTypes.Requireable<(...args: any[]) => any>; type: PropTypes.Requireable; disabled: PropTypes.Requireable; primary: PropTypes.Requireable; size: PropTypes.Requireable; mark: PropTypes.Requireable; theme: PropTypes.Requireable; }; static defaultProps: { tooltipPosition: string; }; }