import { TUseValues } from '../../AHooks/useValues';
export interface IATabOptionRendererProps<T> {
    /**
     * option : T
     *
     * Description : option of ATab
     */
    option: T;
}
export declare const ATabTypes: readonly ["Primary", "Secondary", "Tertiary", "Quaternary"];
export type TATabTypes = (typeof ATabTypes)[number];
export interface IATabProps<T> {
    /**
     * LeftAddon? : React.ReactNode
     *
     * Description : LeftAddon of ATab
     */
    LeftAddon?: React.ReactNode;
    /**
     * OptionRenderer? : (props: IATabOptionRendererProps<T>) => React.ReactNode = DefaultItemRenderer
     *
     * Description : OptionRenderer of ATab
     */
    OptionRenderer?: (props: IATabOptionRendererProps<T>) => React.ReactNode;
    /**
     * RightAddon? : React.ReactNode
     *
     * Description : RightAddon of ATab
     */
    RightAddon?: React.ReactNode;
    /**
     * color? : string
     *
     * Description : color of unselected options in ATab
     */
    color?: string;
    /**
     * height? : number
     *
     * Description : height of ATab
     */
    height?: number;
    /**
     * indicatorProps? : React.HTMLProps<HTMLDivElement>
     *
     * Description : props for the indicator element of ATab
     */
    indicatorProps?: React.HTMLProps<HTMLDivElement>;
    /**
     * indicatorTrackProps? : React.HTMLProps<HTMLDivElement>
     *
     * Description : props for the indicator track element of ATab
     */
    indicatorTrackProps?: React.HTMLProps<HTMLDivElement>;
    /**
     * optionProps? : React.HTMLProps<HTMLDivElement>
     *
     * Description : optionProps of ATab
     */
    optionProps?: React.HTMLProps<HTMLElement>;
    /**
     * optionWidth? : string | number
     *
     * Description : optionWidth of ATab. if not set, tabs will have 1/n width.
     */
    optionWidth?: string | number;
    /**
     * options : T[]
     *
     * Description : options of ATab
     */
    options: T[];
    /**
     * selectDisabled? : (option: T) => string | boolean | undefined
     *
     * Description : selectDisabled of ATab
     */
    selectDisabled?: (option: T) => string | boolean | undefined;
    /**
     * selectedColor? : string
     *
     * Description : color of selected option in ATab
     */
    selectedColor?: string;
    /**
     * tabProps? : React.HTMLProps<HTMLDivElement>
     *
     * Description : tabProps of ATab
     */
    tabProps?: React.HTMLProps<HTMLDivElement>;
    /**
     * type? : ATabType = 'Primary'
     *
     * Description : type of ATab
     */
    type?: TATabTypes;
    /**
     * underline? : boolean
     *
     * Description : underline of ATab
     */
    underline?: boolean;
    /**
     * useSelect? : TUseValues<T>
     *
     * Description : useSelect of ATab
     */
    useSelect?: TUseValues<T>;
}
/**
 * AComponent : ATab
 *
 * Description : ATab is a tab component that can select a tab.
 *
 * Basic Usage :
 *
 *     const options = ['Option1', 'Option2', 'Option3'];
 *     const [selected, setSelected] = useState<typeof options[0]>(options[0]);
 *     const OptionRenderer = ({option}) => 'This is option' + option;
 *
 *     if (case 1)
 *       <ATab options={options}/>
 *
 *     if (case 2)
 *       <ATab options={options}
 *         OptionRenderer={OptionRenderer}/>
 *
 *     if (case 3)
 *       <ATab options={options}
 *         useSelect={[selected, setSelected]}/>
 *
 *     if (case 4)
 *       <ATab options={options}
 *         type="Secondary"/>
 */
export declare const ATab: <T>(props: IATabProps<T>) => import("react/jsx-runtime").JSX.Element;
