import { ButtonHTMLAttributes, Ref, ReactElement, ReactNode, PureComponent } from 'react';
import PropTypes from 'prop-types';
import { CombinePropsAndAttributes } from '../../helpers';
import { AlignSide, AlignSideVariant } from '../common/types';
interface ISelfProps {
    elementRef?: Ref<HTMLButtonElement>;
    icon?: ReactElement<any>;
    flexIcon?: boolean;
    alignIcon?: AlignSide;
    children?: ReactNode;
}
export declare type IProps = CombinePropsAndAttributes<ISelfProps, ButtonHTMLAttributes<HTMLButtonElement>>;
export default class Button extends PureComponent<IProps> {
    static propTypes: {
        elementRef: PropTypes.Requireable<(...args: any[]) => any>;
        icon: PropTypes.Requireable<PropTypes.ReactElementLike>;
        flexIcon: PropTypes.Requireable<boolean>;
        alignIcon: PropTypes.Requireable<AlignSide>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    };
    static defaultProps: {
        flexIcon: boolean;
        alignIcon: AlignSideVariant;
    };
    render(): JSX.Element;
}
export {};
//# sourceMappingURL=Button.d.ts.map