import type { AriaAttributes, JSX } from 'react';
import React from 'react';
import type { CommonProps } from '../../internal/CommonWrapper/index.js';
import type { TGetRootNode } from '../../lib/rootNode/index.js';
import type { SizeProp } from '../../lib/types/props.js';
import { Tab } from './Tab.js';
type ValueBaseType = string;
export interface TabsProps<T extends ValueBaseType = string> extends CommonProps {
    /** Кастомный класс для индикатора (подчёркивания) активного таба. */
    indicatorClassName?: string;
    /** Размер табов. */
    size?: SizeProp;
    /** Идентификатор активного таба. Совпадает с `id` выбранного `<Tab />`. */
    value: T;
    /** Вызывается при смене активного таба. */
    onValueChange?: (value: T) => void;
    /** Располагает табы вертикально.
     * @default false */
    vertical?: boolean;
    /** Ширина компонента. */
    width?: number | string;
    /** @ignore */
    'aria-describedby'?: AriaAttributes['aria-describedby'];
}
export declare const TabsDataTids: {
    readonly root: "Tabs__root";
    readonly indicatorRoot: "Indicator__root";
};
type DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;
/**
 * Контейнер для компонента [Tab](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_display-data-tabs-tab--doc). Группирует табы и позволяет управлять их состоянием.
 */
export declare class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static defaultProps: DefaultProps;
    private getProps;
    static Tab: typeof Tab;
    private globalObject;
    private emotion;
    private cx;
    private styles;
    private theme;
    private tabs;
    private tabUpdates;
    private listeners;
    getRootNode: TGetRootNode;
    private setRootNode;
    render(): JSX.Element;
    private shiftFocus;
    private notifyUpdate;
    private switchTab;
    private getTab;
    private addTab;
    private removeTab;
}
export {};
