import { WalletClientWithAccount, VertexContracts, VertexDeploymentAddresses, ChainEnv } from '@vertex-protocol/contracts'; import { EngineClient } from '@vertex-protocol/engine-client'; import { IndexerClient } from '@vertex-protocol/indexer-client'; import { TriggerClient } from '@vertex-protocol/trigger-client'; import { PublicClient } from 'viem'; /** * Context required to use the Vertex client. */ interface VertexClientContext { publicClient: PublicClient; walletClient?: WalletClientWithAccount; linkedSignerWalletClient?: WalletClientWithAccount; contracts: VertexContracts; contractAddresses: VertexDeploymentAddresses; engineClient: EngineClient; indexerClient: IndexerClient; triggerClient: TriggerClient; } /** * Args for creating a context */ interface VertexClientContextOpts { contractAddresses: VertexDeploymentAddresses; engineEndpoint: string; indexerEndpoint: string; triggerEndpoint: string; } /** * Args for signing configuration for creating a context */ type CreateVertexClientContextAccountOpts = Pick; type CreateVertexClientContextOpts = VertexClientContextOpts | ChainEnv; /** * Utility function to create client context from options * * @param opts * @param accountOpts */ declare function createClientContext(opts: CreateVertexClientContextOpts, accountOpts: CreateVertexClientContextAccountOpts): VertexClientContext; export { type CreateVertexClientContextAccountOpts, type CreateVertexClientContextOpts, type VertexClientContext, createClientContext };