import { ChainType } from "@atomiqlabs/base";
import { SignedStarknetTx, StarknetTx } from "./chain/modules/StarknetTransactions";
import { StarknetSigner } from "./wallet/StarknetSigner";
import { StarknetSwapData } from "./swaps/StarknetSwapData";
import { StarknetSwapContract } from "./swaps/StarknetSwapContract";
import { StarknetChainEventsBrowser } from "./events/StarknetChainEventsBrowser";
import { StarknetBtcRelay } from "./btcrelay/StarknetBtcRelay";
import { StarknetPreFetchVerification } from "./swaps/modules/StarknetSwapInit";
import { StarknetChainInterface } from "./chain/StarknetChainInterface";
import { StarknetSpvVaultData } from "./spv_swap/StarknetSpvVaultData";
import { StarknetSpvWithdrawalData } from "./spv_swap/StarknetSpvWithdrawalData";
import { StarknetSpvVaultContract } from "./spv_swap/StarknetSpvVaultContract";
import { Account } from "starknet";
/**
 * Type definition for the Starknet chain implementation
 *
 * @category Chain Interface
 */
export type StarknetChainType = ChainType<"STARKNET", never, StarknetPreFetchVerification, StarknetTx, SignedStarknetTx, StarknetSigner, Account, StarknetSwapData, StarknetSwapContract, StarknetChainInterface, StarknetChainEventsBrowser, StarknetBtcRelay<any>, StarknetSpvWithdrawalData, StarknetSpvVaultData, StarknetSpvVaultContract>;
