/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import "./tabs.scss";
import type { DOMAttributes } from "react";
import React from "react";
import type { StrictReactNode } from "@openlens/utilities";
interface TabsContextValue<D> {
    autoFocus?: boolean;
    withBorder?: boolean;
    value?: D;
    onChange?(value: D): void;
}
export interface TabsProps<D> extends TabsContextValue<D>, Omit<DOMAttributes<HTMLElement>, "onChange"> {
    className?: string;
    center?: boolean;
    wrap?: boolean;
    scrollable?: boolean;
}
export declare class Tabs<D> extends React.PureComponent<TabsProps<D>> {
    elem: HTMLDivElement | null;
    render(): React.JSX.Element;
}
export interface TabProps<D> extends DOMAttributes<HTMLElement> {
    id?: string;
    className?: string;
    active?: boolean;
    disabled?: boolean;
    icon?: StrictReactNode | string;
    label?: StrictReactNode;
    value: D;
}
export declare class Tab<D> extends React.PureComponent<TabProps<D>> {
    static contextType: React.Context<TabsContextValue<unknown>>;
    context: TabsContextValue<D>;
    ref: React.RefObject<HTMLDivElement>;
    constructor(props: TabProps<D>);
    get isActive(): boolean;
    focus(): void;
    scrollIntoView(): void;
    onClick(evt: React.MouseEvent<HTMLElement>): void;
    onFocus(evt: React.FocusEvent<HTMLElement>): void;
    onKeyDown(evt: React.KeyboardEvent<HTMLElement>): void;
    componentDidMount(): void;
    render(): React.JSX.Element;
}
export {};
