import React from 'react';
import { Theme } from '../cn';
export declare type SlideDownProps = {
    /**
     * Управление состоянием expand/collapse компонента
     */
    isExpanded?: boolean;
    /**
     * Контент компонента
     */
    children?: React.ReactNode;
    /**
     * Тема компонента
     */
    theme?: Theme;
    /**
     * Дополнительный класс
     */
    className?: string;
    /**
     * Идентификатор компонента в DOM
     */
    id?: string;
    /**
     * Обработчик события начала анимации
     */
    onAnimationStart?: () => void;
    /**
     * Обработчик события окончания анимации
     */
    onAnimationEnd?: () => void;
    /**
     * Идентификатор для систем автоматизированного тестирования
     */
    'data-test-id'?: string;
};
declare type SlideDownState = {
    height: number | string;
    isHeightAuto: boolean;
};
/**
 * Компонент "расхлопа".
 * Позволяет скрывать и отображать контент.
 */
export declare class SlideDown extends React.PureComponent<SlideDownProps, SlideDownState> {
    protected cn: (this: void | {
        props?: Record<string, unknown>;
    }, elementNameOrMods?: string | {
        [key: string]: string | number | boolean;
    }, mods?: {
        [key: string]: string | number | boolean;
    }) => string;
    state: {
        height: React.Key;
        isHeightAuto: boolean;
    };
    private slideDown;
    private slideDownContent;
    componentDidUpdate(prevProps: SlideDownProps): void;
    render(): JSX.Element;
    private handleTransitionEnd;
    private getHeight;
    private setHeightToContentHeight;
    private setHeightToNull;
    private setAutoHeight;
}
declare const _default: React.ForwardRefExoticComponent<SlideDownProps & React.RefAttributes<SlideDown>> & SlideDown;
export default _default;
