import { d as Address, g as FulfillmentNotification, m as CarrierWebhookResult, p as CarrierTrackResult, t as FulfillmentDbSchema, y as Label } from "./schema-CIDxLCgB.js";
import { a as StorageAdapter, i as FulfillmentPorts, n as CarrierAdapter, t as BuyLabelArgs } from "./seams-CsBH_YwI.js";
import { Order, OrderLine } from "@platform-modules/commerce-orders";
import { TransactionalDatabase } from "@platform-modules/db";
//#region src/testing.d.ts
interface MemoryCarrierAdapterOptions {
  buyLabel?: (args: BuyLabelArgs) => Promise<Label>;
  track?: (trackingNumber: string) => Promise<CarrierTrackResult>;
  verifyWebhook?: (req: Request) => Promise<CarrierWebhookResult | null>;
}
interface MemoryCarrierAdapter extends CarrierAdapter {
  readonly buyLabelCallCount: number;
}
declare function createMemoryCarrierAdapter(options?: MemoryCarrierAdapterOptions): MemoryCarrierAdapter;
interface StoragePutRecord {
  key: string;
  body: Uint8Array | ArrayBuffer;
}
interface MemoryStorageAdapter extends StorageAdapter {
  readonly puts: StoragePutRecord[];
}
declare function createMemoryStorageAdapter(): MemoryStorageAdapter;
declare const DEFAULT_MEMORY_ADDRESS: Address;
interface MemoryFulfillmentPortsOptions {
  db: TransactionalDatabase<FulfillmentDbSchema>;
  storage?: StorageAdapter;
  notify?: (notification: FulfillmentNotification) => Promise<void>;
  resolveBlobKey?: (line: OrderLine) => Promise<string>;
  resolveShippingAddress?: (order: Order) => Promise<Address>;
  carriers?: FulfillmentPorts['carriers'];
}
interface MemoryFulfillmentPorts extends FulfillmentPorts {
  readonly notifications: FulfillmentNotification[];
}
declare function createMemoryFulfillmentPorts(options: MemoryFulfillmentPortsOptions): MemoryFulfillmentPorts;
//#endregion
export { DEFAULT_MEMORY_ADDRESS, MemoryCarrierAdapter, MemoryCarrierAdapterOptions, MemoryFulfillmentPorts, MemoryFulfillmentPortsOptions, MemoryStorageAdapter, StoragePutRecord, createMemoryCarrierAdapter, createMemoryFulfillmentPorts, createMemoryStorageAdapter };