import * as React from "react";
import * as PropTypes from "prop-types";
import { Props as ButtonProps } from "../Button/Button";
import { Props as ModalProps } from "../Modal/Modal";
export interface Props extends ButtonProps {
    modalClassName?: string;
    modalWidth?: number;
    modalTitle: React.ReactNode;
    modalFocusLocked?: boolean;
    children?: ModalProps["children"];
    onClose?: Function;
}
interface State {
    showingModal: boolean;
}
export declare class ModalButton extends React.Component<Props, State> {
    static propTypes: {
        children: PropTypes.Validator<PropTypes.ReactNodeLike>;
        onClose: PropTypes.Requireable<(...args: any[]) => any>;
        className: PropTypes.Requireable<string>;
        type: PropTypes.Requireable<import("../utils/types").Values<{
            readonly PRIMARY: "primary";
            readonly SECONDARY: "secondary";
            readonly DESTRUCTIVE: "destructive";
            readonly SECONDARY_DESTRUCTIVE: "secondaryDestructive";
            readonly LINK: "link";
            readonly LINK_PLAIN: "linkPlain";
            readonly PLAIN: "plain";
        }>>;
        size: PropTypes.Requireable<import("../utils/types").Values<{
            readonly S: "small";
            readonly M: "regular";
            readonly L: "large";
        }>>;
        value: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        href: PropTypes.Requireable<string>;
        target: PropTypes.Requireable<string>;
        disabled: PropTypes.Requireable<boolean>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        submit: PropTypes.Requireable<boolean>;
        style: PropTypes.Requireable<object>;
        underlined: PropTypes.Requireable<boolean>;
        ariaLabel: PropTypes.Requireable<string>;
        dataTestID: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        type: "secondary";
        size: "regular";
        target: string;
    };
    constructor(props: Props);
    showModal(): void;
    hideModal(): void;
    render(): JSX.Element;
}
export {};
