import * as React from 'react';
import type { HasAlign } from '../../types';
import { type TappableOmitProps } from '../Tappable/Tappable';
import '../Tappable/Tappable.module.css';
import '../Spinner/Spinner.module.css';
export interface VKUIButtonProps extends HasAlign {
    /**
     * Режим отображения кнопки.
     */
    mode?: 'primary' | 'secondary' | 'tertiary' | 'outline' | 'link';
    /**
     * Цветовая схема кнопки.
     */
    appearance?: 'accent' | 'positive' | 'negative' | 'neutral' | 'overlay' | 'accent-invariable';
    /**
     * Размер кнопки.
     */
    size?: 's' | 'm' | 'l';
    /**
     * Растягивает кнопку на всю ширину контейнера.
     */
    stretched?: boolean;
    /**
     * Контент, отображаемый перед основным содержимым кнопки.
     */
    before?: React.ReactNode;
    /**
     * Контент, отображаемый после основного содержимого кнопки.
     */
    after?: React.ReactNode;
    /**
     * Включает состояние загрузки (отображает спиннер).
     */
    loading?: boolean;
    /**
     * Отключает анимацию спиннера загрузки.
     */
    disableSpinnerAnimation?: boolean;
    /**
     * Добавляет скругленные углы кнопке.
     */
    rounded?: boolean;
}
export interface ButtonProps extends Omit<TappableOmitProps, 'size'>, VKUIButtonProps {
}
/**
 * @see https://vkui.io/components/button
 */
export declare const Button: ({ size, mode, appearance, stretched, align, children, before, after, getRootRef, loading, onClick, disableSpinnerAnimation, rounded, disabled, ...restProps }: ButtonProps) => React.ReactNode;
//# sourceMappingURL=Button.d.ts.map