import React, { PureComponent } from 'react';
import { ButtonProps } from './Button.types';
import { WixStyleReactDefaultsOverride } from '../WixStyleReactDefaultsOverrideProvider';
declare class Button extends PureComponent<ButtonProps> {
    static contextType: React.Context<WixStyleReactDefaultsOverride>;
    static displayName: string;
    constructor(props: ButtonProps);
    button: React.RefObject<HTMLButtonElement>;
    /**
     * Sets focus on the element
     */
    focus: (options?: FocusOptions) => void;
    /**
     * Returns the size and position of the element
     */
    getBoundingClientRect: () => DOMRect | undefined;
    render(): React.JSX.Element;
}
declare const ButtonWithDefaultProps: React.ForwardRefExoticComponent<(import("./Button.types").ButtonAsButtonProps<{
    children?: React.ReactNode;
    className?: string;
    skin?: import("./Button.types").ButtonSkin;
    priority?: import("./Button.types").ButtonPriority;
    size?: import("./Button.types").ButtonSize;
    fullWidth?: boolean;
    suffixIcon?: import("..").IconElement;
    prefixIcon?: import("..").IconElement;
    disabled?: boolean;
    dataHook?: string;
    ellipsis?: boolean;
    internalDataHook?: string;
    showTooltip?: boolean;
    tooltipProps?: import("..").TooltipCommonProps;
}> | import("./Button.types").ButtonAsAnchorProps<{
    children?: React.ReactNode;
    className?: string;
    skin?: import("./Button.types").ButtonSkin;
    priority?: import("./Button.types").ButtonPriority;
    size?: import("./Button.types").ButtonSize;
    fullWidth?: boolean;
    suffixIcon?: import("..").IconElement;
    prefixIcon?: import("..").IconElement;
    disabled?: boolean;
    dataHook?: string;
    ellipsis?: boolean;
    internalDataHook?: string;
    showTooltip?: boolean;
    tooltipProps?: import("..").TooltipCommonProps;
}> | Omit<import("./Button.types").ButtonGenericProps<{
    children?: React.ReactNode;
    className?: string;
    skin?: import("./Button.types").ButtonSkin;
    priority?: import("./Button.types").ButtonPriority;
    size?: import("./Button.types").ButtonSize;
    fullWidth?: boolean;
    suffixIcon?: import("..").IconElement;
    prefixIcon?: import("..").IconElement;
    disabled?: boolean;
    dataHook?: string;
    ellipsis?: boolean;
    internalDataHook?: string;
    showTooltip?: boolean;
    tooltipProps?: import("..").TooltipCommonProps;
}>, "ref"> | Omit<import("./Button.types").ButtonAsComponentProps<{
    children?: React.ReactNode;
    className?: string;
    skin?: import("./Button.types").ButtonSkin;
    priority?: import("./Button.types").ButtonPriority;
    size?: import("./Button.types").ButtonSize;
    fullWidth?: boolean;
    suffixIcon?: import("..").IconElement;
    prefixIcon?: import("..").IconElement;
    disabled?: boolean;
    dataHook?: string;
    ellipsis?: boolean;
    internalDataHook?: string;
    showTooltip?: boolean;
    tooltipProps?: import("..").TooltipCommonProps;
}>, "ref">) & React.RefAttributes<Button>> & import("hoist-non-react-statics").NonReactStatics<typeof Button, {}>;
type ButtonWithDefaultProps = Button;
export default ButtonWithDefaultProps;
//# sourceMappingURL=Button.d.ts.map