import { TableProps } from '../interfaces';
interface ExpandableItemProps<T> extends ExpandableItemDetail<T> {
    isExpandable: boolean;
    isExpanded: boolean;
    onExpandableItemToggle: () => void;
    expandButtonLabel?: string;
    collapseButtonLabel?: string;
    itemsCount?: number;
    selectedItemsCount?: number;
}
interface ExpandableItemDetail<T> {
    level: number;
    setSize: number;
    posInSet: number;
    parent: null | T;
    children: readonly T[];
}
export interface InternalExpandableRowsProps<T> {
    isExpandable: boolean;
    allItems: readonly T[];
    getExpandableItemProps(item: T): ExpandableItemProps<T>;
    hasGroupSelection: boolean;
    groupSelection: TableProps.GroupSelectionState<T>;
    onGroupSelectionChange?: TableProps.OnGroupSelectionChange<T>;
    totalItemsCount?: number;
    totalSelectedItemsCount?: number;
}
export declare function useExpandableTableProps<T>({ items, expandableRows, trackBy, ariaLabels, }: {
    items: readonly T[];
    expandableRows?: TableProps.ExpandableRows<T>;
    trackBy?: TableProps.TrackBy<T>;
    ariaLabels?: TableProps.AriaLabels<T>;
}): InternalExpandableRowsProps<T>;
export {};
//# sourceMappingURL=expandable-rows-utils.d.ts.map