import { default as React } from 'react';
import { Column, RowData } from '@tanstack/react-table';
export type TableSettingsDrawerCopyProps<TEnableDrag extends boolean = boolean> = {
    title: string;
    generalSettings: {
        header: string;
        toggles: {
            showFilters: string;
            lockFirstcolumn: string;
            stickyHeader: string;
        };
    };
    visibleColumns: TEnableDrag extends true ? VisibleColumnsWithColumnDragCopyProps : VisibleColumnsWithoutColumnDragCopyProps;
    buttons: {
        closeDrawer: string;
        resetSettings: string;
    };
};
type VisibleColumnsCopyBaseProps = {
    header: string;
    description: string;
};
type VisibleColumnsWithColumnDragCopyProps = VisibleColumnsCopyBaseProps & {
    rearrangeDescription: string;
    buttons: {
        rearrange: string;
        done: string;
    };
    ariaLabels: {
        dragHandle: {
            action: string;
            instructions: string;
        };
        arrowButtons: {
            move: string;
            up: string;
            down: string;
        };
        buttons: {
            rearrange: string;
            done: string;
        };
    };
};
type VisibleColumnsWithoutColumnDragCopyProps = VisibleColumnsCopyBaseProps & {
    rearrangeDescription?: never;
    buttons?: never;
    ariaLabels?: never;
};
type ColumnDragEnabledProps = {
    enableColumnDrag: true;
    onColumnOrderChange: (newColumnOrder: string[]) => void;
    copy: TableSettingsDrawerCopyProps<true>;
};
type ColumnDragDisabledProps = {
    enableColumnDrag?: false;
    onColumnOrderChange?: never;
    copy: TableSettingsDrawerCopyProps<false>;
};
export type TableSettingsDrawerProps<TData> = {
    id: string;
    getAllColumns: () => Column<TData, unknown>[];
    onResetSettings: () => void;
    setDrawerIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
    setShowColumnFiltersEnabled: React.Dispatch<React.SetStateAction<boolean>>;
    setStickyFirstColumn: React.Dispatch<React.SetStateAction<boolean>>;
    setStickyHeaders: React.Dispatch<React.SetStateAction<boolean>>;
    columnFiltersEnabled: boolean;
    isDrawerOpen: boolean;
    showColumnFilters: boolean;
    stickyFirstColumn: boolean;
    stickyHeaders: boolean;
    zIndex?: number;
    columnOrder?: string[];
} & (ColumnDragEnabledProps | ColumnDragDisabledProps);
export declare const TableSettingsDrawer: <TData extends RowData>({ id, columnFiltersEnabled, copy, isDrawerOpen, showColumnFilters, stickyFirstColumn, stickyHeaders, getAllColumns, onResetSettings, setDrawerIsOpen, setShowColumnFiltersEnabled, setStickyFirstColumn, setStickyHeaders, enableColumnDrag, zIndex, columnOrder, onColumnOrderChange, }: TableSettingsDrawerProps<TData>) => React.JSX.Element;
export {};
//# sourceMappingURL=table-settings-drawer.d.ts.map