import { type ReactElement } from "react";
import { Align } from '../align';
import { type ComponentSize } from '../util/component';
export interface TabSpec {
    tabKey: string;
    name: string;
    closable?: boolean;
    icon?: ReactElement;
    editable?: boolean;
}
export interface SelectorProps extends Omit<Align.SpaceProps, "children"> {
    size?: ComponentSize;
}
export declare const Selector: ({ className, size, direction, ...props }: SelectorProps) => ReactElement | null;
export interface SelectorButtonProps extends TabSpec {
    selected?: string;
    onDragStart?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;
    onDragEnd?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;
    onSelect?: (key: string) => void;
    onClose?: (key: string) => void;
    onRename?: (key: string, name: string) => void;
    size: ComponentSize;
}
