import type { Seaport } from "@opensea/seaport-js" import type { OpenSeaAPI } from "../api/api" import type { ContractCaller, OpenSeaWallet } from "../provider/types" import type { Chain, EventData, EventType } from "../types" /** * Shared context passed to all SDK managers. * Contains common dependencies and utilities needed across managers. */ export interface SDKContext { /** The blockchain chain being used */ chain: Chain /** Abstract wallet (signer + provider) */ wallet: OpenSeaWallet /** Contract read/write caller */ contractCaller: ContractCaller /** OpenSea API client */ api: OpenSeaAPI /** Seaport client instance */ seaport: Seaport /** Logger function for debugging */ logger: (msg: string) => void /** Event dispatcher */ dispatch: (event: EventType, data: EventData) => void /** Transaction confirmation helper */ confirmTransaction: ( hash: string, event: EventType, description: string, ) => Promise /** Account availability checker */ requireAccountIsAvailable: (address: string) => Promise }