import React from 'react';
import type { CommonProps } from '../../internal/CommonWrapper';
import type { TGetRootNode } from '../../lib/rootNode';
declare const types: readonly ["big", "mini", "normal"];
export type SpinnerType = (typeof types)[number];
export interface SpinnerProps extends CommonProps {
    /** Задает подпись под спиннером.
     * @default "Загрузка" */
    caption?: React.ReactNode;
    /** Переводит спиннер в "затемнённый режим".
     * Цвет спиннера в "затемнённом режиме" определяется переменной `spinnerDimmedColor`. */
    dimmed?: boolean;
    /** Задает размер спиннера и текста.
     * @default normal. */
    type?: SpinnerType;
    /** Уменьшает спиннер для вставки в инлайн элемент. При type = "big"|"normal" размер спиннера уменьшается. */
    inline?: boolean;
    /** Задает толщину спиннера. */
    width?: number;
    /** Задает цвет спиннера. Не работает с пропом dimmed. */
    color?: React.CSSProperties['color'];
}
export declare const SpinnerDataTids: {
    readonly root: "Spinner__root";
};
type DefaultProps = Required<Pick<SpinnerProps, 'type'>>;
/**
 * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.
 *
 * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.
 * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.
 *
 * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.
 */
export declare class Spinner extends React.Component<SpinnerProps> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static defaultProps: DefaultProps;
    private getProps;
    static Types: Record<SpinnerType, SpinnerType>;
    private theme;
    getRootNode: TGetRootNode;
    private setRootNode;
    render(): React.JSX.Element;
    private renderMain;
    private renderSpinner;
    private renderCaption;
}
export {};
