import { type Dispatch, type MutableRefObject, type RefObject, type SetStateAction } from 'react';
import type { SortDirectionType } from 'react-virtualized';
import type { FilterState } from '../../stores/filter-store/types';
import type { SortedWell } from '../../hooks/useSortedWells';
import type { WellSection, TaScore } from '../../hooks/useExternalOffsets';
import type { OffsetWellMapHandle } from '../Map/OffsetWellMap/OffsetWellMap';
type ResolvedColumn = {
    type: string;
    label: string;
    key: string;
    minWidth: number;
    flex: number;
};
type FilterOptionConfig = {
    value: string;
    label: string;
    options: string[] | {
        id: number;
        name: string;
    }[];
};
export type TableSectionProps = {
    isMobile: boolean;
    isViewOnly: boolean;
    isFilterExpanded: boolean;
    isVScrollMoved: boolean;
    isTableFullLoading: boolean;
    isLimitedOffsetWells: boolean;
    isWellSectionColumnVisible: boolean;
    isAllWellsSelected: boolean;
    indeterminate: boolean;
    subjectWellId: number | undefined;
    selectedWellIds: number[];
    selectedWellSection: string;
    sortedWells: SortedWell[] | null;
    tableWells: SortedWell[];
    tableRowsCount: number;
    wellSections: WellSection[] | null;
    metricsKeys: string[];
    setMetricsKeys: Dispatch<SetStateAction<string[]>>;
    columnsWithDict: ResolvedColumn[] | null;
    taScores: TaScore[];
    filterOptions: FilterOptionConfig[];
    loadingWellIds: Set<number>;
    loadingAssetIds: number[];
    filters: FilterState;
    sortBy: string;
    setSortBy: Dispatch<SetStateAction<string>>;
    sortDirection: SortDirectionType;
    setSortDirection: Dispatch<SetStateAction<SortDirectionType>>;
    maxOffsetWellNumber: number;
    handleChangeOffsetWell: (well: {
        id: number;
    }, checked: boolean) => void;
    handleChangeAllOffsetWells: (checked: boolean) => void;
    handleChangeWellSection: (section: string) => Promise<void>;
    handleAddRemoveAssets: (isAdding: boolean, newAssets: number[], assetType: string, rigIds: number[] | null) => Promise<void>;
    handleScroll: (e: React.UIEvent<HTMLDivElement>) => void;
    setActiveWellId: Dispatch<SetStateAction<number | null>>;
    setIsAdvancedSearchHidden: (value: boolean) => void;
    wellsMapRef: RefObject<OffsetWellMapHandle | null>;
    headTableRef: RefObject<HTMLDivElement | null>;
    rightColumnRef: RefObject<HTMLDivElement | null>;
    isAnimatingRef: MutableRefObject<boolean>;
};
export declare const TableSection: ({ isMobile, isViewOnly, isFilterExpanded, isVScrollMoved, isTableFullLoading, isLimitedOffsetWells, isWellSectionColumnVisible, isAllWellsSelected, indeterminate, subjectWellId, selectedWellIds, selectedWellSection, sortedWells, tableWells, tableRowsCount, wellSections, metricsKeys, setMetricsKeys, columnsWithDict, taScores, filterOptions, loadingWellIds, loadingAssetIds, filters, sortBy, setSortBy, sortDirection, setSortDirection, maxOffsetWellNumber, handleChangeOffsetWell, handleChangeAllOffsetWells, handleChangeWellSection, handleAddRemoveAssets, handleScroll, setActiveWellId, setIsAdvancedSearchHidden, wellsMapRef, headTableRef, rightColumnRef, isAnimatingRef, }: TableSectionProps) => JSX.Element;
export {};
//# sourceMappingURL=TableSection.d.ts.map