/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import { type ReactNode } from 'react';
/**
 * TabValue is the "config" of a given Tab
 * Provided through <Tabs> "values" prop or through the children <TabItem> props
 */
export interface TabValue {
    readonly value: string;
    readonly label?: string;
    readonly attributes?: {
        [key: string]: unknown;
    };
    readonly default?: boolean;
}
export interface TabsProps {
    readonly lazy?: boolean;
    readonly block?: boolean;
    readonly children: ReactNode;
    readonly defaultValue?: string | null;
    readonly values?: readonly TabValue[];
    readonly groupId?: string;
    readonly className?: string;
    readonly queryString?: string | boolean;
}
export interface TabItemProps {
    readonly children: ReactNode;
    readonly value: string;
    readonly default?: boolean;
    readonly label?: string;
    readonly className?: string;
    readonly attributes?: {
        [key: string]: unknown;
    };
}
export declare function sanitizeTabsChildren(children: ReactNode): ReactNode;
type TabsContextValue = {
    selectedValue: string;
    selectValue: (value: string) => void;
    tabValues: readonly TabValue[];
    lazy: boolean;
    block: boolean;
};
export declare function useTabsContextValue(props: TabsProps): TabsContextValue;
export declare function useTabs(): TabsContextValue;
export declare function TabsProvider(props: {
    children: ReactNode;
    value: TabsContextValue;
}): ReactNode;
export {};
//# sourceMappingURL=tabsUtils.d.ts.map