import * as React from 'react';
import type { HTMLAttributesWithRootRef } from '../../types';
export interface RemovableProps {
    /**
     * Текст кнопки удаления ячейки. Визуально скрыт везде, кроме iOS. На iOS появляется в выезжающей кнопке для удаления ячейки.
     */
    removePlaceholder?: React.ReactNode;
    /**
     * Обработчик, срабатывающий при нажатии на контрол удаления.
     */
    onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;
    /**
     * Передает атрибут `data-testid` для кнопки, которая активирует кнопку удаления (iOS only).
     */
    toggleButtonTestId?: string;
    /**
     * Передает атрибут `data-testid` для кнопки удаления.
     */
    removeButtonTestId?: string;
    /**
     * Блокировка взаимодействия с компонентом.
     */
    disabled?: boolean;
}
export interface RemovableIosRenderProps {
    /**
     * Показывает состояние Removable на платформе iOS при нажатии на иконку удаления.
     * Для имитации поведения на iOS при нажатии на иконку удаления самого удаление не происходит,
     * контент сдвигается влево и справа выезжает настоящая кнопка "Удалить".
     * Когда контент сдвинут `isRemoving = true`.
     */
    isRemoving: boolean;
}
interface RemovableOwnProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'children'>, RemovableProps {
    /**
     * Расположение кнопки удаления.
     */
    align?: 'start' | 'center';
    /**
     * Скрывает кнопку, но оставляет отступ.
     * @since 5.4.0
     */
    indent?: boolean;
    /**
     * Убирает базовые отступы для базовой платформы.
     */
    noPadding?: boolean;
    /**
     * Содержимое. Можно передать функцию для отрисовки.
     */
    children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);
}
export declare const Removable: ({ children, onRemove, removePlaceholder, align, indent, toggleButtonTestId, removeButtonTestId, disabled, noPadding, ...restProps }: RemovableOwnProps) => React.ReactNode;
export {};
//# sourceMappingURL=Removable.d.ts.map