import { FiltersMap, KeyedItem } from '@wix/bex-core';
import { TableState } from '../../state';
import { GroupBy, RenderSection, Section } from '../CollectionSectionHeader';
export declare class TableSectionsState<T, F extends FiltersMap> {
    table: TableState<T, F>;
    groupBy: GroupBy<T>;
    renderSection: RenderSection<T>;
    collapsible: boolean;
    onToggleCallback?: (sectionId: string, isCollapsed: boolean) => void;
    constructor(table: TableState<T, F>, groupBy: GroupBy<T>, renderSection: RenderSection<T>, collapsible?: boolean);
    toggleSection: (sectionId: string) => void;
    private isSectionCollapsed;
    private getSectionItems;
    private generateSectionId;
    private get computeSectionData();
    get sectionCounts(): Map<string, {
        count: number;
        isComplete: boolean;
    }>;
    get sectionItems(): Map<string, T[]>;
    get sectionIndices(): Map<string, number>;
    get sectionsKeyedItems(): KeyedItem<T>[];
    getSectionWithCount(sectionKeyedItem: KeyedItem<T>): {
        sectionId: string;
        sectionIndex: number;
        section: Section & {
            count: number;
            hasMore: boolean;
            items: T[];
            collapsed: boolean;
        };
        collapsible: boolean;
    };
    isSectionRow(keyedItem: KeyedItem<T>): boolean;
    isInvisibleRow(keyedItem: KeyedItem<T>): boolean;
}
//# sourceMappingURL=TableSectionsState.d.ts.map