import type { SessionMetadataCollect } from './sessionMetadataV3.js'; /** Line snapshot for checkout session idempotency (customer PWA + kiosk parity). */ export interface CartLineFingerprintLine { readonly productId: number; readonly variantId: number | null; readonly quantity: number; } export interface CartLineFingerprintInput { readonly tenantCode: string; readonly kioskId: number; readonly purposeType: string; readonly flowType: string; readonly checkoutSubMode: string; readonly collect: SessionMetadataCollect | null; readonly lines: readonly CartLineFingerprintLine[]; readonly customerId?: number | null; /** Bumped after `409 IDEMPOTENCY_CONFLICT` so the shopper can retry checkout. */ readonly revision?: number; } export declare function buildCustomerIdentityDimension(customerId: number | null | undefined): string; export declare function buildCollectHash(collect: SessionMetadataCollect | null): string; export declare function buildLinesFingerprint(lines: readonly CartLineFingerprintLine[]): string; /** * Stable idempotency key for `POST /customer-checkout/sessions`. * * Dimensions (ADR): tenantCode | kioskId | purposeType | flowType | * checkoutSubMode | collectHash | linesFingerprint | customerIdentityDimension */ export declare function buildCheckoutSessionIdempotencyKey(input: CartLineFingerprintInput): string; export declare function mapShopCartLinesToFingerprintLines(lines: ReadonlyArray<{ readonly product: { readonly id: number; }; readonly variant: { readonly id: number; } | null; readonly quantity: number; }>): CartLineFingerprintLine[]; //# sourceMappingURL=CartLineFingerprint.d.ts.map