/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { KendoReactComponentBaseProps, WebMcpProps } from '@progress/kendo-react-common';
import { ButtonProps } from '@progress/kendo-react-buttons';
import * as React from 'react';
/**
 * Represents the values of the size property of the TabStrip.
 */
export type TabStripSize = 'small' | 'medium' | 'large';
/**
 * Represents the values of the scrollButtons property of the TabStrip.
 */
export type ScrollButtons = 'auto' | 'visible' | 'hidden';
/**
 * Represents the values of the scrollButtonsPosition property of the TabStrip.
 */
export type ScrollButtonsPosition = 'split' | 'start' | 'end' | 'around' | 'before' | 'after';
/**
 * @hidden
 */
export interface TabStripScrollableProps {
    /**
     * Determines whether the TabStrip will be scrollable.
     *
     * @default false
     */
    scrollable?: boolean;
    /**
     * Sets the tab list scroll speed in pixels when scrolling via clicking the previous or next button.
     *
     * @default 100
     */
    buttonScrollSpeed?: number;
    /**
     * Sets the tab list scroll speed in pixels when scrolling via mouse wheel.
     *
     * @default 10
     */
    mouseScrollSpeed?: number;
    /**
     * Sets the visibility of the scroll buttons.
     *
     * @default `auto`
     */
    scrollButtons?: ScrollButtons;
    /**
     * Sets the scroll buttons position according to the tab list.
     * The previous options 'around', 'before', 'after' are going to be deprecated in favor of 'split', 'start', 'end'.
     *
     * @default `split`
     */
    scrollButtonsPosition?: ScrollButtonsPosition;
    /**
     * Defines the custom component that will be rendered as a previous button.
     * To remove the button, set a function which returns null `() => null`.
     */
    prevButton?: React.ComponentType<ButtonProps>;
    /**
     * Defines the custom component that will be rendered as a next button.
     * To remove the button, set a function which returns null `() => null`.
     */
    nextButton?: React.ComponentType<ButtonProps>;
}
/**
 * The arguments that are passed to the `onSelect` callback function of the TabStrip.
 */
export interface TabStripSelectEventArguments {
    /**
     * The index of the selected TabStrip tab.
     */
    selected: number;
}
/**
 * Represents the props of the [KendoReact TabStrip component](https://www.telerik.com/kendo-react-ui/components/layout/tabstrip).
 */
export interface TabStripProps extends KendoReactComponentBaseProps, TabStripScrollableProps {
    /**
     * Enables the tab animation.
     *
     * @example
     * ```jsx
     * <TabStrip animation={true} />
     * ```
     */
    animation?: boolean;
    /**
     * Sets the index of the selected TabStripTab component ([see example](https://www.telerik.com/kendo-react-ui/components/layout/tabstrip/tabs#toc-tabs-on-initial-loading)).
     *
     * @example
     * ```jsx
     * <TabStrip selected={0} />
     * ```
     */
    selected?: number;
    /**
     * @hidden
     */
    style?: any;
    /**
     * Sets the style of the TabStripContent component.
     *
     * @example
     * ```jsx
     * <TabStrip tabContentStyle={{ padding: '10px' }} />
     * ```
     */
    tabContentStyle?: any;
    /**
     * Sets the position of the tabs. Defaults to `top`.
     *
     * The available options are:
     * - `"top"`&mdash;Renders the `TabStripNavigation` to the top of the TabStrip.
     * - `"bottom"`&mdash;Renders the `TabStripNavigation` to the bottom of the TabStrip.
     * - `"left"`&mdash;Renders the `TabStripNavigation` to the left of the TabStrip.
     * - `"right"`&mdash;Renders the `TabStripNavigation` to the right of the TabStrip.
     *
     * @example
     * ```jsx
     * <TabStrip tabPosition="bottom" />
     * ```
     */
    tabPosition?: string;
    /**
     * Sets the alignment of the tabs. Defaults to `start`.
     *
     * The available options are:
     * - `"start"`&mdash;Aligns the tabs at the start of the `TabStripNavigation`.
     * - `"center"`&mdash;Aligns the tabs in the center of the `TabStripNavigation`.
     * - `"end"`&mdash;Aligns the tabs at the end of the `TabStripNavigation`.
     * - `"justify"`&mdash;Justifies the tabs inside the `TabStripNavigation`.
     * - `"stretched"`&mdash;Stretches the tabs inside the `TabStripNavigation`.
     *
     * @example
     * ```jsx
     * <TabStrip tabAlignment="center" />
     * ```
     */
    tabAlignment?: string;
    /**
     * Sets the `tabIndex` of the TabStripNavigation.
     *
     * @example
     * ```jsx
     * <TabStrip tabIndex={0} />
     * ```
     */
    tabIndex?: number;
    /**
     * Sets the direction of the TabStrip component.
     *
     * @example
     * ```jsx
     * <TabStrip dir="rtl" />
     * ```
     */
    dir?: string;
    /**
     * Specifies the CSS class names of the TabStrip component.
     *
     * @example
     * ```jsx
     * <TabStrip className="custom-class" />
     * ```
     */
    className?: string;
    /**
     * Specifies the possible sizes of the TabStrip.
     *
     * @default undefined (theme-controlled)
     *
     * @example
     * ```jsx
     * <TabStrip size="small" />
     * ```
     */
    size?: TabStripSize;
    /**
     * Defines if the tabs will remain mounted after another tab is selected. Defaults to `false`.
     *
     * @example
     * ```jsx
     * <TabStrip keepTabsMounted={true} />
     * ```
     */
    keepTabsMounted?: boolean;
    /**
     * @default false
     * Defines if all component tabs will be rendered by default. Defaults to `false`.
     * If set to `false`, the component will render only the currently selected tab. This can be useful when the content of the tabs is heavy and you want to improve the initial loading time. Check also the [keepTabsMounted](https://www.telerik.com/kendo-react-ui/components/layout/api/tabstripprops#toc-keeptabsmounted) prop.
     *
     * @example
     * ```jsx
     * <TabStrip renderAllContent={true} />
     * ```
     */
    renderAllContent?: boolean;
    /**
     * Fires each time the user makes a selection.
     *
     * @example
     * ```jsx
     * <TabStrip onSelect={(e) => console.log(e.selected)} />
     * ```
     */
    onSelect?: (e: TabStripSelectEventArguments) => void;
    /**
     * Enables Web MCP tool registration so AI agents can interact with this TabStrip.
     * Set to `true` to use the provider-level `dataName`, or pass a config object to override.
     *
     * Requires a `WebMcpProvider` ancestor from `@progress/kendo-react-webmcp`.
     */
    webMcp?: boolean | WebMcpProps;
}
/**
 * @hidden
 */
export type StateScrollPosition = 'start' | 'end' | 'top' | 'bottom' | 'middle' | null;
/**
 * @hidden
 */
export interface TabStripStateProps {
    containerScrollPosition: StateScrollPosition;
}
export declare const TabStrip: React.ForwardRefExoticComponent<TabStripProps & React.RefAttributes<TabStripHandle | null>>;
/**
 * Represents the `ref` of the TabStrip component.
 */
export interface TabStripHandle {
    /**
     * The props of the TabStrip component.
     */
    props: TabStripProps;
}
