import { ShippingMethodsInfo, PaymentMethodsInfo, PlatformMethodUpdateDTO, OrderDTO, MerchantsMethodsUpdateDTO, AddressDTO, DiscountCodeUpdateDTO, LineItemDraftDTO, QuantityUpdateDTO, DiscountCodeInfoDTO, CustomLineItemDraftDTO, TaxedPriceDTO } from '@sentecacommerce/sdk';
import { QueryResult, MutationResultPair, QueryCache } from 'react-query';
export declare const BASKET_STORAGE_KEY = "__BASKET__";
export declare const myCartCacheKeys: {
    useGet: string;
    useGetCompact: string;
    useGetShippingMethods: string;
    useGetAllShippingMethods: string;
    useGetPaymentMethods: string;
    useIsExisting: string;
};
declare type myCartApiType = {
    readonly useGetWithCookies: (queryCache: QueryCache, cookies: any) => Promise<OrderDTO>;
    readonly usePrefetchCart: (queryCache: QueryCache) => Promise<OrderDTO | {
        error: any;
    }>;
    readonly useGet: () => QueryResult<OrderDTO, unknown>;
    readonly useGetCompact: () => QueryResult<CompactBasket, unknown>;
    readonly useIsExisting: (productId: string, variantId?: string, collapseKey?: string) => QueryResult<boolean, unknown>;
    readonly useGetShippingMethods: () => QueryResult<ShippingMethodsInfo, unknown>;
    readonly useGetAllShippingMethods: () => QueryResult<ShippingMethodsInfo, unknown>;
    readonly useGetPaymentMethods: (data?: {
        enabled?: boolean;
    }) => QueryResult<PaymentMethodsInfo, unknown>;
    readonly useAdd: (onSuccess?: () => void, query?: {
        storeKey?: string | undefined;
        currencyCode?: string | undefined;
        languageCode?: string | undefined;
        priceListKey?: string | undefined;
        time?: number | undefined;
        merchantKey?: string | undefined;
        expand?: string | undefined;
        project?: string | undefined;
    }) => MutationResultPair<OrderDTO, unknown, LineItemDraftDTO, unknown>;
    readonly useAddCustom: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, CustomLineItemDraftDTO, unknown>;
    readonly useRemove: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, {
        productId: string;
        variantId?: string;
        collapseKey?: string;
    }, unknown>;
    readonly useRemoveCustom: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, {
        lineItemId: string;
        productId: string;
        variantId: string;
    }, unknown>;
    readonly useSetQuantity: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, {
        productId: string;
        variantId?: string;
        dto: QuantityUpdateDTO;
        collapseKey?: string;
    }, unknown>;
    readonly useSync: (onSuccess?: (order: OrderDTO) => void) => MutationResultPair<OrderDTO, unknown, {
        query?: {
            storeKey?: string;
            currencyCode?: string;
            languageCode?: string;
            priceListKey?: string;
            time?: number;
            merchantKey?: string;
            expand?: string;
            project?: string;
        };
    }, unknown>;
    readonly useSetPlatformShippingMethod: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, PlatformMethodUpdateDTO, unknown>;
    readonly useUnsetShippingMethod: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, unknown, unknown>;
    readonly useSetMerchantsShippingMethod: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, MerchantsMethodsUpdateDTO, unknown>;
    readonly useSetShippingAddress: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, AddressDTO, unknown>;
    readonly useSetBillingAddress: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, AddressDTO, unknown>;
    readonly useAddDiscountCode: (onSuccess?: () => void, onError?: (code: DiscountCodeInfoDTO) => void) => MutationResultPair<OrderDTO, unknown, DiscountCodeUpdateDTO, unknown>;
    readonly useRemoveDiscountCode: (onSuccess?: () => void) => MutationResultPair<OrderDTO, unknown, DiscountCodeUpdateDTO, unknown>;
};
export declare type CompactBasket = {
    totalNet: {
        amount: number;
        currency: string;
    };
    totalGross: {
        amount: number;
        currency: string;
    };
    lineItems: {
        [productId: string]: {
            [identifier: string]: {
                quantity?: number;
                lineItemId?: string;
            };
        };
    };
    customLineItems: {
        [productId: string]: {
            [identifier: string]: number;
        };
    };
    lineItemsCount: number;
    customLineItemsCount: number;
    grandTaxedPrice?: TaxedPriceDTO;
};
export declare const MyCartApiFactory: {
    getInstance: () => myCartApiType;
};
export declare const myCartApi: myCartApiType;
export {};
