/**
 * Copyright (c) Adaptavist, Inc.
 */
import { GenericProps } from '../../utilities';
import React, { ComponentPropsWithoutRef } from 'react';
export type ITabs = ComponentPropsWithoutRef<'ul'> & GenericProps & {
    /**
     * Prop to set the current TabPane's key.
     *
     * Default is `an empty string`.
     */
    activeKey?: string;
    /**
     * A callback executed when tab is clicked.
     *
     * Default is `an empty object`.
     */
    onTabClick?: (tab: Pick<ITabPane, 'tabKey' | 'title'>) => void;
    /**
     * Prop to set if the last tab should be right aligned.
     *
     * If set to true, the last tab will hang to the right.
     * If set to left, the last tab will hang to the left.
     *
     * Default is `false`.
     */
    rightAlignLastTab?: boolean;
    /**
     * A prop to control the shadows displayed to indicate more content to be shown.
     *
     * If set to true, the respective shadow will be rendered.
     * If set to false, nothing will happen.
     *
     * Default is `false`.
     */
    scrollShadows?: {
        showLeftShadow?: boolean;
        showRightShadow?: boolean;
    };
    /**
     * Prop to set if the Tabs component will fill to use the entire free space available.
     *
     * If set to true, the Tabs will fill the available space set by the parent.
     * If set to false, the Tabs will fill automatically.
     *
     * Default is `false`.
     */
    tabsFullWidth?: boolean;
    /**
     * Prop to set if the Tabs component has a solid underline.
     *
     * If set to true, the Tabs will render with a solid underline.
     * If set to false, the Tabs will not render with a solid underline.
     *
     * Default is `false`.
     */
    tabsUnderline?: boolean;
};
export type ITabPane = GenericProps & {
    /**
     * Prop to denote child elements.
     *
     * Default is `an empty object`.
     */
    children: React.ReactNode;
    /**
     * Prop to set if the tab should be disabled or not.
     *
     * If set to true, the tab will be disabled.
     * If set to false, the tab will not be disabled.
     *
     * Default is `false`.
     */
    disabled?: boolean;
    /**
     * Prop to set a custom href value on this step to redirect to.
     *
     * Default is `an empty string`.
     */
    href?: string;
    /**
     * Prop to set a unique index number for this step to change where it appears in the Tab.
     *
     * Default is `0`.
     */
    index?: number;
    /**
     * Prop to control if Next/Link (internal) should be used (default) or a
     * standard `a` element (external).
     *
     * If set to true, Next/Links will be used.
     * If set to false, plain 'a' anchors will be used.
     *
     * Default is `false`.
     */
    isExternalLink?: boolean;
    /**
     * Prop to set if this step is selected.
     *
     * If set to true, this step will be selected.
     * If set to false, this step will not be selected.
     *
     * Default is `false`.
     */
    isSelected?: () => boolean;
    /**
     * Prop to set a unique tab identifier.
     *
     * Default is `an empty string`.
     */
    tabKey?: string;
    /**
     * Prop to set a unique tab title.
     *
     * Default is `an empty string`.
     */
    title: React.ReactNode;
};
export type ITab = {
    props: ITabPane;
};
