import type * as React from 'react';
import type { PopupPlacement } from "../Popup/index.js";
import type { TableColumnConfig } from "../Table/Table.js";
import "./TableColumnSetup.css";
export interface TableColumnSetupItem {
    id: string;
    title: React.ReactNode;
    selected?: boolean;
    required?: boolean;
    sticky?: TableColumnConfig<unknown>['sticky'];
}
type Item = TableColumnSetupItem;
interface SwitcherProps {
    onKeyDown: React.KeyboardEventHandler<HTMLElement>;
    onClick: React.MouseEventHandler<HTMLElement>;
}
export interface TableColumnSetupProps {
    disabled?: boolean;
    /**
     * @deprecated Use renderSwitcher instead
     */
    switcher?: React.ReactElement | undefined;
    renderSwitcher?: (props: SwitcherProps) => React.ReactElement | undefined;
    items: Item[];
    sortable?: boolean;
    onUpdate: (updated: Item[]) => void;
    popupWidth?: number | 'fit' | undefined;
    popupPlacement?: PopupPlacement;
    getItemTitle?: (item: Item) => TableColumnSetupItem['title'];
    showStatus?: boolean;
    className?: string;
}
export declare const TableColumnSetup: (props: TableColumnSetupProps) => import("react/jsx-runtime").JSX.Element;
export {};
