import type { ColumnOrderState, VisibilityState } from "@tanstack/react-table";
import React from "react";
import type { ObjectTableLabels } from "./ObjectTableLabels.js";
import type { ColumnOption } from "./utils/types.js";
export interface ColumnConfig {
	columnId: string;
	isVisible: boolean;
}
export type ColumnConfigOptions = Array<Pick<ColumnOption, "id" | "name">>;
export interface ColumnConfigDialogProps {
	isOpen: boolean;
	onClose: () => void;
	columnOptions: ColumnConfigOptions;
	currentVisibility?: VisibilityState;
	currentColumnOrder?: ColumnOrderState;
	onApply: (columns: ColumnConfig[]) => void;
	isValidConfig?: (columns: ColumnConfig[]) => boolean;
	/**
	* Overrides for the dialog's user-facing strings. Provide any subset; unset
	* keys fall back to the built-in English defaults. When this dialog is
	* rendered inside a `BaseTable`/`ObjectTable`, it inherits that table's
	* `labels` and this prop is only needed to override further. See
	* {@link ObjectTableLabels}.
	*/
	labels?: Partial<ObjectTableLabels>;
}
export declare const ColumnConfigDialog: React.FC<ColumnConfigDialogProps>;
