import type Medusa from "@medusajs/js-sdk";
import type { HttpTypes } from "@medusajs/types";
import type { CheckoutService } from "./types";
export type MedusaPaymentSessionDataInput = {
    cart: HttpTypes.StoreCart;
    cartId: string;
    providerId: string;
};
export type MedusaPaymentSessionBindingInput = MedusaPaymentSessionDataInput & {
    paymentCollection: HttpTypes.StorePaymentCollection;
    paymentSessionData: Record<string, unknown> | undefined;
    paymentSessionId: string;
};
type MaybePromise<T> = T | Promise<T>;
export type MedusaCheckoutServiceConfig = {
    bindPaymentSessionData?: (input: MedusaPaymentSessionBindingInput) => MaybePromise<void>;
    cartFields?: string;
    buildPaymentSessionData?: (input: MedusaPaymentSessionDataInput) => MaybePromise<Record<string, unknown> | undefined>;
};
/**
 * Creates a CheckoutService for Medusa SDK
 *
 * @example
 * ```typescript
 * import { createCheckoutHooks } from "@techsio/storefront-data/checkout/hooks"
 * import { createMedusaCheckoutService } from "@techsio/storefront-data/checkout/medusa-service"
 * import { sdk } from "@/lib/medusa-client"
 *
 * const checkoutHooks = createCheckoutHooks({
 *   service: createMedusaCheckoutService(sdk),
 *   queryKeys: checkoutQueryKeys,
 * })
 * ```
 */
export declare function createMedusaCheckoutService(sdk: Medusa, config?: MedusaCheckoutServiceConfig): CheckoutService<HttpTypes.StoreCart, HttpTypes.StoreCartShippingOption, HttpTypes.StorePaymentProvider, HttpTypes.StorePaymentCollection, HttpTypes.StoreCompleteCartResponse>;
export {};
//# sourceMappingURL=medusa-service.d.ts.map