import { type StoreApi } from 'zustand';
import type { OffsetWellPickerFilterControl, OffsetWell, OffsetSettingsInput, OffsetSettingsOutput, PickerSegment } from '../../OffsetWellPickerV5.types';
import type { UserWithGroups } from '../../utils/checkIsUserAdmin';
export type AllWellsLoadProgress = {
    loaded: number;
    isComplete: boolean;
};
export type PickerPropsStore = {
    segment: PickerSegment;
    open?: boolean;
    isViewOnly: boolean;
    isWDUser: boolean;
    defaultSubjectWell?: {
        asset_id: number;
        companyId: number;
    };
    offsetSettings?: OffsetSettingsInput;
    currentUser?: Partial<UserWithGroups>;
    addWellsUsabilityInfo: (wells: OffsetWell[]) => PromiseLike<OffsetWell[]> | OffsetWell[];
    onSave: ((offsetSettings: OffsetSettingsOutput, selectedWells?: OffsetWell[]) => void) | undefined;
    onClose: (() => void) | undefined;
    maxOffsetSize: number;
    localMaxOffsetSize: number;
    syncAutoEnabled: boolean;
    isManualWellsEnabled: boolean;
    isGlobalMode: boolean;
    loadAllWellsByDefault: boolean | undefined;
    additionalFilterControls: OffsetWellPickerFilterControl[];
    isLoadAllWells: boolean;
    allWellsLoadProgress: AllWellsLoadProgress | null;
    shouldRecenter: boolean;
    toggleLoadAllWells: () => void;
    resetIsLoadAllWells: () => void;
    setIsLoadAllWells: (value: boolean) => void;
    setAllWellsLoadProgress: (progress: AllWellsLoadProgress | null) => void;
    setShouldRecenter: (value: boolean) => void;
};
export type PickerPropsStoreProps = {
    segment?: PickerSegment;
    open?: boolean;
    isViewOnly?: boolean;
    isWDUser?: boolean;
    defaultSubjectWell?: {
        asset_id: number;
        companyId: number;
    };
    offsetSettings?: OffsetSettingsInput;
    currentUser?: Partial<UserWithGroups>;
    addWellsUsabilityInfo?: (wells: OffsetWell[]) => PromiseLike<OffsetWell[]> | OffsetWell[];
    onSave: ((offsetSettings: OffsetSettingsOutput, selectedWells?: OffsetWell[]) => void) | undefined;
    onClose: (() => void) | undefined;
    maxOffsetSize?: number;
    localMaxOffsetSize?: number;
    syncAutoEnabled?: boolean;
    isManualWellsEnabled?: boolean;
    isGlobalMode?: boolean;
    loadAllWellsByDefault?: boolean;
    additionalFilterControls?: OffsetWellPickerFilterControl[];
};
export type PickerPropsStoreApi = StoreApi<PickerPropsStore>;
export declare const createPickerPropsStore: (initProps: PickerPropsStoreProps) => StoreApi<PickerPropsStore>;
//# sourceMappingURL=createPickerPropsStore.d.ts.map