import { HTMLAttributes, SyntheticEvent, ReactElement, PureComponent } from 'react';
import PropTypes from 'prop-types';
import { CombinePropsAndAttributes } from '../../helpers';
import { Align, AlignVariant } from '../common/types';
export * from './DropdownContent';
interface ISelfProps {
    active?: boolean;
    defaultActive?: boolean;
    disabled?: boolean;
    blockScroll?: boolean;
    hideOnClick?: boolean;
    align?: Align;
    children: ReactElement<any>[];
    transitionDuration?: number;
    onToggle?(active: boolean, event: Event | SyntheticEvent): any;
}
export declare type IProps = CombinePropsAndAttributes<ISelfProps, HTMLAttributes<HTMLSpanElement>>;
interface IState {
    active: boolean;
    contentWithOffset: boolean;
}
export default class Dropdown extends PureComponent<IProps, IState> {
    static propTypes: {
        onToggle: PropTypes.Requireable<(...args: any[]) => any>;
        defaultActive: PropTypes.Requireable<boolean>;
        active: PropTypes.Requireable<boolean>;
        disabled: PropTypes.Requireable<boolean>;
        blockScroll: PropTypes.Requireable<boolean>;
        hideOnClick: PropTypes.Requireable<boolean>;
        align: PropTypes.Requireable<LineAlignSetting>;
        children: PropTypes.Validator<PropTypes.ReactElementLike[]>;
        transitionDuration: PropTypes.Requireable<number>;
    };
    static defaultProps: {
        defaultActive: boolean;
        disabled: boolean;
        blockScroll: boolean;
        align: AlignVariant;
        transitionDuration: number;
    };
    static getDerivedStateFromProps({ active, disabled }: IProps, { active: prevActive }: IState): Partial<IState>;
    private elementRef;
    private contentRef;
    private unsubscribeFromOutsideClick;
    private unblockScroll;
    constructor(props: any);
    render(): JSX.Element;
    private renderContent;
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(_: any, { active: prevActive }: IState): void;
    private onElementRef;
    private onContentRef;
    private onToggle;
    private onEscPress;
    private onOutsideClick;
    toggleActiveState(forceState?: boolean, event?: Event | SyntheticEvent): void;
    private toggleEffects;
    private removeEffects;
    private setContentPosition;
}
//# sourceMappingURL=Dropdown.d.ts.map