import "./FloatingButton.less";
import * as PropTypes from "prop-types";
import * as React from "react";
import * as _ from "lodash";
import { Button } from "../Button/Button";
import { Values } from "../utils/types";
export interface Props {
    additionalButtons?: any[];
    animate?: boolean;
    ariaLabel?: string;
    className?: string;
    closeLabel?: React.ReactNode;
    colorGroup?: Values<typeof ColorGroup>;
    offsetX?: string;
    offsetY?: string;
    label?: React.ReactNode;
    onClick?: () => void;
    positionX?: string;
    positionY?: string;
    size?: Values<typeof Button.Size>;
    [additionalProp: string]: any;
}
interface State {
    active: boolean;
    positionX: string;
}
declare const ColorGroup: {
    readonly GREEN: "green";
};
export default class FloatingButton extends React.PureComponent<Props, State> {
    static propTypes: {
        animate: PropTypes.Requireable<boolean>;
        additionalButtons: PropTypes.Requireable<any[]>;
        ariaLabel: PropTypes.Requireable<string>;
        colorGroup: PropTypes.Requireable<"green">;
        className: PropTypes.Requireable<string>;
        closeLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        label: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        offsetX: PropTypes.Requireable<string>;
        offsetY: PropTypes.Requireable<string>;
        positionX: PropTypes.Requireable<"left" | "right" | "center">;
        positionY: PropTypes.Requireable<"bottom" | "top">;
        size: PropTypes.Requireable<Values<{
            readonly S: "small";
            readonly M: "regular";
            readonly L: "large";
        }>>;
    };
    static defaultProps: {
        animate: boolean;
        label: string;
        offsetX: string;
        offsetY: string;
        positionX: "right";
        positionY: "bottom";
    };
    static ColorGroup: {
        readonly GREEN: "green";
    };
    static PositionX: {
        readonly LEFT: "left";
        readonly CENTER: "center";
        readonly RIGHT: "right";
    };
    static PositionY: {
        readonly BOTTOM: "bottom";
        readonly TOP: "top";
    };
    constructor(props: Props);
    onWindowResize: _.DebouncedFunc<() => void>;
    componentDidMount(): void;
    positionX(): string;
    horizontalStyle(): {
        left?: undefined;
        right?: undefined;
    } | {
        left: string;
        right?: undefined;
    } | {
        right: string;
        left?: undefined;
    };
    verticalStyle(): {
        top: string;
        bottom?: undefined;
    } | {
        bottom: string;
        top?: undefined;
    };
    mainButtonHandler: () => void;
    onRootClose: () => void;
    additionalButtonHandler(button: any): void;
    render(): JSX.Element;
}
export {};
