import { Ref, ExtractPropTypes } from 'vue';
import type { DataTableColumnInternal, DataTableItem, DataTableCell, DataTableItemKey } from '../types';
export declare const getItemKey: <T extends Record<string, any>>(source: T, itemsTrackBy: string | ((item: T) => any)) => DataTableItemKey;
export declare const createRowsProps: <T extends Record<string, any>>() => {
    itemsTrackBy: {
        type: import("vue").PropType<string | ((item: Record<string, any>) => any)>;
        default: string;
    };
    items: {
        type: import("vue").PropType<T[]>;
        default: () => T[];
    };
};
type RowsProps<Item> = Omit<ExtractPropTypes<ReturnType<typeof createRowsProps>>, 'items'> & {
    items: Item[];
};
export declare const useRows: <Item extends Record<string, any>>(columns: Ref<DataTableColumnInternal[]>, props: RowsProps<Item>) => {
    rowsComputed: import("vue").ComputedRef<{
        toggleRowDetails: (show?: boolean) => void;
        isExpandableRowVisible: boolean;
        source: Item;
        initialIndex: number;
        itemKey: any;
        cells: DataTableCell<Item>[];
        rowData: Item;
    }[]>;
};
export {};
