import React from 'react';
/**
 * @description Component to customize table columns
 * @param title - Display title for the table settings sideDrawer
 * @param list - Array of all the possible table columns that can be displayed
 * @param selected - Array of user selected columns that will be displayed in the table
 * @param callout - Function to update/save the array of selected columns after customization has been confirmed
 * @param setToDefaultCallout - Function to be called when the "Reset" button is used (generally used to reset selected column array to default)
 * @param topChildren - custom component to be displayed above the columns selection list
 * @param bottomChildren - custom component to be displayed below the columns selection list
 * @param cancelCallout - Function to be called when the "Cancel" button is used (generally used to cancel modified settings)
 */
export type CustomizeTableColumnsProps = {
    /** Custom title for table settings */
    title?: string;
    /** Array of all the columns that can be displayed in the UI */
    list: string[];
    /** Array of user selected columns that we want displayed in the UI */
    selected: string[];
    /** Updates the array of selected columns after customization has been confirmed */
    callout: (selectedList: string[]) => void;
    /** The reset function to set the columns back to the default setting */
    setToDefaultCallout: () => void;
    /** Children above the columns list */
    topChildren?: React.ReactNode;
    /** Children below the columns list */
    bottomChildren?: React.ReactNode;
    /** Function to cancel modified settings */
    cancelCallout?: () => void;
    /** Optional prop to enable column reordering */
    isColumnsReorderable?: boolean;
};
declare const CustomizeTableColumns: ({ title, list, selected, callout, setToDefaultCallout, topChildren, bottomChildren, cancelCallout, isColumnsReorderable, }: CustomizeTableColumnsProps) => JSX.Element;
export default CustomizeTableColumns;
