import * as React from 'react';
import type { Elevation, 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' | undefined;
/**
* Цветовая схема кнопки.
*/
appearance?: 'accent' | 'positive' | 'negative' | 'neutral' | 'overlay' | 'accent-invariable' | undefined;
/**
* Размер кнопки.
*/
size?: 's' | 'm' | 'l' | undefined;
/**
* Растягивает кнопку на всю ширину контейнера.
*/
stretched?: boolean | undefined;
/**
* Контент, отображаемый перед основным содержимым кнопки.
*/
before?: React.ReactNode | undefined;
/**
* Контент, отображаемый после основного содержимого кнопки.
*/
after?: React.ReactNode | undefined;
/**
* Включает состояние загрузки (отображает спиннер).
*
* ⚠️ **Важно для доступности**: При использовании `loading={true}` компонент автоматически
* устанавливает `aria-label` в значение `loadingLabel` (по умолчанию "Загрузка..."),
* чтобы скринридер мог объявить контекст загрузки. Вы можете переопределить это значение,
* передав свойство `loadingLabel`.
*
* @example
*
* // Скринридер объявит: "Загрузка..., кнопка"
*
* @example
*
*/
loading?: boolean | undefined;
/**
* Текст для `aria-label` при состоянии загрузки.
* Подменяет переданный в компонент `aria-label` только когда `loading={true}`.
*/
loadingLabel?: string | undefined;
/**
* Отключает анимацию спиннера загрузки.
*/
disableSpinnerAnimation?: boolean | undefined;
/**
* Добавляет скругленные углы кнопке.
*/
rounded?: boolean | undefined;
/**
* Добавляет тень кнопке.
*/
elevation?: Elevation | undefined;
}
export interface ButtonProps extends Omit, VKUIButtonProps {
}
/**
* @see https://vkui.io/components/button
*/
export declare const Button: ({ size, mode, appearance, stretched, align, children, before, after, getRootRef, loading, loadingLabel, onClick, disableSpinnerAnimation, rounded, disabled, href, "aria-label": ariaLabelProp, elevation, ...restProps }: ButtonProps) => React.ReactNode;
//# sourceMappingURL=Button.d.ts.map