import { BoxProps } from "@mui/material/Box";
import { TabProps } from "@mui/material/Tab";
import { TabsProps } from "@mui/material/Tabs";
import React from "react";
type TabBoxPanelActionType = () => void;
type TabBoxPanelChildrenType = TabBoxPanelActionType | ((visible: boolean, index: number) => React.ReactNode) | React.ReactNode;
/**
 * Tab with box panel props
 */
export interface TabBoxPanel extends Omit<TabProps, "value" | "children"> {
    /**
     * Children
     */
    children: TabBoxPanelChildrenType;
    /**
     * Panel box props
     */
    panelProps?: Omit<BoxProps, "hidden">;
}
/**
 * Tabs with box props
 */
export interface TabBoxProps extends Omit<TabsProps, "value"> {
    /**
     * Default selected index
     */
    defaultIndex?: number;
    /**
     * Current index
     */
    index?: number;
    /**
     * Index field of the search params
     * @default 'index'
     */
    indexField?: string;
    /**
     * Add a hidden input and its name
     */
    inputName?: string;
    /**
     * Root props
     */
    root?: BoxProps;
    /**
     * Shared tab props
     */
    tabProps?: Omit<BoxProps, "hidden">;
    /**
     * Tabs
     */
    tabs: TabBoxPanel[];
}
/**
 * Tabs with box
 * @param props Props
 * @returns Component
 */
export declare function TabBox(props: TabBoxProps): import("react/jsx-runtime").JSX.Element;
export {};
