import { QueryResult } from 'react-query';
import { AddressDTO, CustomerDTO, OrderDTO } from '@sentecacommerce/sdk';
import { CheckoutFormErrorLabelsType, CheckoutFormErrorsResultType } from '../../';
import { ShippingValidationsType } from '../../utils';
export declare const useShipping: ({ withPersistBeforePageLeave, orderQuery, validations, enableSavedAddressList, errorLabels, enableSaveAddress, autofillShippingPersonalData, userQuery, enabled, countryCode }: UseShippingProps) => UseShippingResultType;
declare type UseGeographicalData = {
    latitude: number;
    longitude: number;
    placeId: string;
    geocoding: string;
};
declare type UseShippingProps = {
    withPersistBeforePageLeave: boolean;
    orderQuery: QueryResult<OrderDTO, unknown>;
    validations: ShippingValidationsType;
    enableSavedAddressList: boolean;
    enableSaveAddress: boolean;
    autofillShippingPersonalData: boolean;
    errorLabels: CheckoutFormErrorLabelsType;
    userQuery: QueryResult<CustomerDTO, unknown>;
    enabled: boolean;
    countryCode: string;
};
declare type Address = AddressDTO & {
    isSelectable: boolean;
    isSelected: boolean;
    select: () => void;
};
export declare type UseShippingResultType = {
    isSubmitting: boolean;
    errors?: CheckoutFormErrorsResultType;
    isValid: boolean;
    isSavedAddressListEnabled: boolean;
    savedAddressList?: Address[];
    hasAvailableSavedAddress: boolean;
    updateIsSubmitting: (value: boolean) => void;
    onInputChange?: (name: string, value: any) => void;
    persistShippingAddress: () => void;
    data?: AddressDTO;
    saveShippingAddress: () => void;
    canSaveAddress: boolean;
    isAddingNew: boolean;
    updateIsAddingNew: (value: boolean) => void;
    unsetShippingAddress: () => void;
    setGeographicalData: (objParams: UseGeographicalData) => Promise<OrderDTO | undefined>;
};
export {};
