import React, { CSSProperties, ReactNode } from 'react';
import Buttons from './Buttons';
import Input from './Input';
import { SweetAlertAnimationProps, SweetAlertOptionalPropsWithDefaults, SweetAlertProps, SweetAlertPropsTypes, SweetAlertState } from '../types';
export default class SweetAlert extends React.Component<SweetAlertProps, SweetAlertState> {
    static propTypes: SweetAlertPropsTypes;
    static defaultProps: SweetAlertOptionalPropsWithDefaults;
    static SuccessIcon: React.FunctionComponent<{}>;
    static ErrorIcon: React.FunctionComponent<{}>;
    static InfoIcon: React.FunctionComponent<{}>;
    static WarningIcon: () => JSX.Element;
    static CustomIcon: React.FunctionComponent<{
        iconUrl: string;
    }>;
    static Buttons: typeof Buttons;
    static Input: typeof Input;
    static ValidationMessage: React.FunctionComponent<SweetAlertProps>;
    static Title: React.FunctionComponent<{}>;
    static Content: React.FunctionComponent<{}>;
    readonly state: SweetAlertState;
    private inputElement;
    constructor(props: SweetAlertProps);
    componentDidMount(): void;
    static generateId(): string;
    static getDefaultState(): SweetAlertState;
    static getDerivedStateFromProps(nextProps: SweetAlertProps, nextState: SweetAlertState): {};
    componentDidUpdate(prevProps: SweetAlertProps, prevState: SweetAlertState): void;
    componentWillUnmount(): void;
    hideTimeoutHandler(time: number): void;
    static handleTimeout(props: SweetAlertProps, currentTimer: any): {
        timer: any;
        prevTimeout: number;
    };
    static isAnimation(animProp?: boolean | SweetAlertAnimationProps): boolean;
    static animationFromProp(animProp: SweetAlertAnimationProps): string;
    static handleAnimState(props: SweetAlertProps, state: SweetAlertState, hideTimeout: Function): {
        show: boolean;
        animation: string;
    };
    static getStateFromProps: (props: SweetAlertProps) => {
        type: import("../types").SweetAlertType;
        focusConfirmBtn: boolean;
        focusCancelBtn: boolean;
        dependencies: any[];
    };
    static getTypeFromProps: (props: SweetAlertProps) => import("../types").SweetAlertType;
    unsupportedProp: (oldProp: string, message: string) => void;
    focusInput: () => void;
    getIcon: () => React.ReactNode;
    onChangeInput: (e: React.ChangeEvent) => void;
    isValidInput: () => boolean;
    isDisabled: () => boolean;
    onAlertClose: (callback: () => void) => void;
    beforeCloseAlert: (closingAction: 'confirm' | 'cancel', callback: () => void) => void;
    onConfirm: (handleCloseAnimations?: boolean) => void;
    onCancel: (handleCloseAnimations?: boolean) => void;
    onInputKeyDown: (e: React.KeyboardEvent) => void;
    onKeyDown: (e: React.KeyboardEvent) => void;
    onClickInside: (e: React.MouseEvent) => void;
    onClickOutside: () => void;
    setAutoFocusInputRef: (element: HTMLInputElement | HTMLTextAreaElement) => void;
    getComposedStyle: () => CSSProperties;
    getAlertContent: () => ReactNode;
    getCloseButton: () => ReactNode;
    getInputField: () => ReactNode;
    getValidationMessage: () => ReactNode;
    getButtons: () => ReactNode;
    getInjectedStyles: () => ReactNode;
    render(): JSX.Element;
}
