/// <reference types="react" />
import { EditableColumn, EditableOnCellProps, SaveInfoType } from '../interface';
export default function useEditableColumns<RecordType, EditorType>({ columns, dataSource, onSave, }: {
    columns?: EditableColumn<RecordType, EditorType>[];
    dataSource?: RecordType[];
    onSave?: (info: SaveInfoType<RecordType, EditorType>) => void;
}): {
    onCell: (record: RecordType, idx: number | undefined) => EditableOnCellProps<RecordType>;
    editable?: boolean | ((value: any, record: RecordType, index: number) => boolean) | undefined;
    editorType?: Partial<EditorType> | undefined;
    formItemProps?: import("antd").FormItemProps<any> | ((value: any, record: RecordType, index: number) => import("antd").FormItemProps<any>) | undefined;
    fieldProps?: Record<string, any> | ((value: any, record: RecordType, index: number) => Record<string, any>) | undefined;
    valueFormatter?: ((value: any, record: RecordType, index: number) => any) | undefined;
    title?: import("antd/lib/table/interface").ColumnTitle<RecordType>;
    sorter?: boolean | import("antd/lib/table/interface").CompareFn<RecordType> | {
        compare?: import("antd/lib/table/interface").CompareFn<RecordType> | undefined;
        multiple?: number | undefined;
    } | undefined;
    sortOrder?: import("antd/lib/table/interface").SortOrder | undefined;
    defaultSortOrder?: import("antd/lib/table/interface").SortOrder | undefined;
    sortDirections?: import("antd/lib/table/interface").SortOrder[] | undefined;
    sortIcon?: ((props: {
        sortOrder: import("antd/lib/table/interface").SortOrder;
    }) => import("react").ReactNode) | undefined;
    showSorterTooltip?: boolean | import("antd/lib/table/interface").SorterTooltipProps | undefined;
    filtered?: boolean | undefined;
    filters?: import("antd/lib/table/interface").ColumnFilterItem[] | undefined;
    filterDropdown?: import("react").ReactNode | ((props: import("antd/lib/table/interface").FilterDropdownProps) => import("react").ReactNode);
    filterOnClose?: boolean | undefined;
    filterMultiple?: boolean | undefined;
    filteredValue?: import("antd/lib/table/interface").FilterValue | null | undefined;
    defaultFilteredValue?: import("antd/lib/table/interface").FilterValue | null | undefined;
    filterIcon?: import("react").ReactNode | ((filtered: boolean) => import("react").ReactNode);
    filterMode?: "menu" | "tree" | undefined;
    filterSearch?: import("antd/lib/table/interface").FilterSearchType<import("antd/lib/table/interface").ColumnFilterItem> | undefined;
    onFilter?: ((value: boolean | import("react").Key, record: RecordType) => boolean) | undefined;
    filterDropdownOpen?: boolean | undefined;
    onFilterDropdownOpenChange?: ((visible: boolean) => void) | undefined;
    filterResetToDefaultFilteredValue?: boolean | undefined;
    responsive?: import("antd/lib").Breakpoint[] | undefined;
    filterDropdownVisible?: boolean | undefined;
    onFilterDropdownVisibleChange?: ((visible: boolean) => void) | undefined;
    render?: ((value: any, record: RecordType, index: number) => import("react").ReactNode | import("rc-table/lib/interface").RenderedCell<RecordType>) | undefined;
    className?: string | undefined;
    hidden?: boolean | undefined;
    width?: string | number | undefined;
    align?: import("rc-table/lib/interface").AlignType | undefined;
    colSpan?: number | undefined;
    rowSpan?: number | undefined;
    fixed?: import("rc-table/lib/interface").FixedType | undefined;
    ellipsis?: import("rc-table/lib/interface").CellEllipsisType | undefined;
    key?: import("react").Key | undefined;
    dataIndex?: import("rc-table/lib/interface").DataIndex<RecordType> | undefined;
    shouldCellUpdate?: ((record: RecordType, prevRecord: RecordType) => boolean) | undefined;
    onCellClick?: ((record: RecordType, e: import("react").MouseEvent<HTMLElement, MouseEvent>) => void) | undefined;
    onHeaderCell?: import("rc-table/lib/interface").GetComponentProps<import("rc-table").ColumnType<RecordType> | import("rc-table/lib/interface").ColumnGroupType<RecordType>> | undefined;
    rowScope?: import("rc-table/lib/interface").RowScopeType | undefined;
}[] | undefined;
