import type { FetchedOffsetWell } from '../../api/shared/types';
import type { Company } from '../company-safeguard/CompanySafeguardContext';
export type PeriodType = 'all' | 'last12h' | 'last24h' | 'last7d' | 'lastMonth' | 'custom';
export type SelectionMode = 'radius' | 'lasso';
export type FilterMutationSource = 'manual_ui' | 'system' | 'external_sync';
/** Mirrors `PickerSegment` in OffsetWellPickerV5.types (kept here to avoid circular imports). */
export type PickerSegmentId = 'drilling' | 'intervention';
export type PolygonCoord = {
    latitude: number;
    longitude: number;
};
export type FilterState = {
    status?: string[];
    companyId?: number[];
    rigName?: string[];
    programName?: string[];
    basin?: string[];
    county?: string[];
    area?: string[];
    formation?: string[];
    stringDesign?: string[];
    interventionAsset?: string[];
    padName?: string[];
    period?: PeriodType;
    sideTracks?: boolean;
    drillingWells?: boolean;
    interventionWells?: boolean;
    activeInterventionWells?: boolean;
    timeRangeFrom?: number;
    timeRangeTo?: number;
    selectionMode?: SelectionMode;
    polygonCoords?: PolygonCoord[];
    radius?: number;
    hasUserConfirmedAllCompaniesLoadAll?: boolean;
    showHiddenWells?: boolean;
};
export declare const BASE_DEFAULT_FILTERS: FilterState;
/**
 * Keys representing map selection state (not filter criteria).
 * These are preserved during filter resets and excluded from default-state comparisons.
 */
export declare const SELECTION_FILTER_KEYS: readonly ["selectionMode", "radius", "polygonCoords"];
export type FilterStoreDataSources = {
    wells: FetchedOffsetWell[] | null;
    companies: Company[];
    canViewCompanies: boolean;
    isAllWellsLoaded: boolean;
    isLoadAllWells: boolean;
    segment: PickerSegmentId;
};
export type FilterStore = FilterStoreDataSources & {
    filters: FilterState;
    defaultFilters: FilterState;
    tempFilters: Partial<FilterState>;
    lastFilterMutationSource: FilterMutationSource;
    filterMutationSeq: number;
    setFilter: (key: keyof FilterState, value: FilterState[keyof FilterState], source?: FilterMutationSource) => void;
    setFilters: (filters: FilterState, source?: FilterMutationSource) => void;
    clearFilters: (source?: FilterMutationSource) => void;
    resetFilters: (source?: FilterMutationSource) => void;
    resetFilterCriteria: (source?: FilterMutationSource) => void;
    hasActiveFilters: () => boolean;
    setTempFilter: (key: keyof FilterState, value: FilterState[keyof FilterState]) => void;
    clearTempFilter: (key: keyof FilterState) => void;
    clearAllTempFilters: () => void;
    commitTempFilter: (key: keyof FilterState) => void;
    setSelectionMode: (mode: SelectionMode) => void;
    setPolygonCoords: (coords: PolygonCoord[] | undefined) => void;
    setRadius: (radius: number) => void;
    pruneAllCascades: () => void;
};
export type FilterStoreProps = {
    filters?: FilterState;
    defaultFilters?: FilterState;
    canViewCompanies?: boolean;
};
export type SetWithMutation = (updates: Partial<Pick<FilterStore, 'filters' | 'tempFilters'>>, source: FilterMutationSource) => void;
//# sourceMappingURL=types.d.ts.map