import type { Dispatch, MutableRefObject, RefObject, SetStateAction } from 'react';
import type { SortDirectionType } from 'react-virtualized';
import type { OffsetWell } from '../../OffsetWellPickerV5.types';
import type { FilterState } from '../../stores/filter-store/types';
import type { SelectionZone } from '../../types/SelectionZone';
import type { OffsetWellMapHandle } from '../Map/OffsetWellMap/OffsetWellMap';
import type { SortedWell } from '../../hooks/useSortedWells';
import type { WellSection, TaScore } from '../../hooks/useExternalOffsets';
import type { FilterableWell } from '../../utils/doesWellPassFilters';
/** Well record from the filtered wells pipeline. */
type FilterableWellWithId = FilterableWell & {
    id: string | number;
};
/** Column descriptor resolved for the current viewport. */
type ResolvedColumn = {
    type: string;
    label: string;
    key: string;
    minWidth: number;
    flex: number;
};
/** Filter option descriptor matching useFilterOptions return. */
type FilterOptionConfig = {
    value: string;
    label: string;
    options: string[] | {
        id: number;
        name: string;
    }[];
};
/** Batch select result from map interactions. */
type BatchSelectResult = {
    attempted: number;
    added: number;
};
export type OffsetWellPickerContentProps = {
    open: boolean | undefined;
    isMobile: boolean;
    isViewOnly: boolean;
    isMapHidden: boolean;
    isFilterExpanded: boolean;
    isVScrollMoved: boolean;
    isLoading: boolean;
    isTableFullLoading: boolean;
    isResetVisible: boolean;
    isOffsetSourceKnown: boolean;
    hasOffsetSource: boolean;
    hasSavedHandpicked: boolean;
    isSynced: boolean;
    isLimitedOffsetWells: boolean;
    isWellSectionColumnVisible: boolean;
    isAllWellsSelected: boolean;
    indeterminate: boolean;
    isXtoProvider: boolean;
    hasValidAssetId: boolean;
    syncedOffsetLabel: string;
    savedOffsetLabel: string;
    resetTooltipLabel: string;
    maxOffsetWellNumber: number;
    subjectWell: (Record<string, unknown> & {
        id: number;
    }) | null;
    subjectWellId: number | undefined;
    selectedWells: OffsetWell[];
    selectedWellIds: number[];
    selectedWellsCount: number;
    selectedWellSection: string;
    filteredWells: FilterableWellWithId[] | null;
    wellsToDisplay: FilterableWellWithId[] | null;
    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;
    currentSelectionZone: SelectionZone | null;
    activeWellId: number | null;
    sortBy: string;
    setSortBy: Dispatch<SetStateAction<string>>;
    sortDirection: SortDirectionType;
    setSortDirection: Dispatch<SetStateAction<SortDirectionType>>;
    shouldRecenter: boolean;
    wells: (Record<string, unknown> & {
        id: number;
    })[] | null;
    handleCancel: () => void;
    handleSave: () => void;
    handleReset: () => Promise<void>;
    handleChangeOffsetWell: (well: OffsetWell, checked: boolean) => void;
    handleBatchSelectWells: (wellsToSelect: OffsetWell[], onComplete?: (result: BatchSelectResult) => void) => void;
    handleChangeAllOffsetWells: (checked: boolean) => void;
    handleSelectionZoneConfirm: (zone: SelectionZone | null) => 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>>;
    setShouldRecenter: (value: boolean) => void;
    setIsAdvancedSearchHidden: (value: boolean) => void;
    wellsMapRef: RefObject<OffsetWellMapHandle | null>;
    headTableRef: RefObject<HTMLDivElement | null>;
    rightColumnRef: RefObject<HTMLDivElement | null>;
    isAnimatingRef: MutableRefObject<boolean>;
};
export {};
//# sourceMappingURL=OffsetWellPickerContent.types.d.ts.map