import { EulerSDK } from "./sdk.js"; import { type IABIService } from "../services/abiService/index.js"; import { type IDeploymentService } from "../services/deploymentService/index.js"; import { type IProviderService } from "../services/providerService/index.js"; import { type IAccountService } from "../services/accountService/index.js"; import { type IPortfolioService } from "../services/portfolioService/index.js"; import { type AccountVaultsSubgraphAdapterConfig } from "../services/accountService/adapters/accountOnchainAdapter/accountVaultsSubgraphAdapter.js"; import type { AccountServiceConfig } from "../services/accountService/accountServiceConfig.js"; import { type IWalletService } from "../services/walletService/index.js"; import { type IEVaultService } from "../services/vaults/eVaultService/index.js"; import type { EVaultServiceConfig } from "../services/vaults/eVaultService/eVaultServiceConfig.js"; import { type EulerEarnServiceConfig, type IEulerEarnService } from "../services/vaults/eulerEarnService/index.js"; import { type ISecuritizeVaultService } from "../services/vaults/securitizeVaultService/index.js"; import { type EulerLabelsURLAdapterConfig, type IEulerLabelsService } from "../services/eulerLabelsService/index.js"; import { type ITokenlistService } from "../services/tokenlistService/index.js"; import { type ISwapService, type SwapServiceConfig } from "../services/swapService/index.js"; import { type IExecutionService } from "../services/executionService/index.js"; import { type IPriceService, type PricingServiceConfig } from "../services/priceService/index.js"; import { type IRewardsService, type RewardsServiceConfig } from "../services/rewardsService/index.js"; import { type IIntrinsicApyService, type IntrinsicApyServiceConfig } from "../services/intrinsicApyService/index.js"; import { type IOracleAdapterService, type OracleAdapterServiceConfig } from "../services/oracleAdapterService/index.js"; import { type IFeeFlowService, type FeeFlowServiceConfig } from "../services/feeFlowService/index.js"; import { type IREULLockService } from "../services/reulLockService/index.js"; import { type ISafeAccountService } from "../services/safeAccountService/index.js"; import { type AaveMigrationConnectorConfig, type IPositionMigrationService, type MetamorphoMigrationConnectorConfig, type MorphoMigrationConnectorConfig, type PositionMigrationServiceConfig } from "../services/positionMigrationService/index.js"; import { type ActivityServiceConfig, type IActivityService } from "../services/activityService/index.js"; import { type EulerSDKConfig } from "./config.js"; import type { TokenlistServiceConfig } from "../services/tokenlistService/index.js"; import { type IVaultMetaService, type VaultEntity, type VaultServiceEntry } from "../services/vaults/vaultMetaService/index.js"; import type { VaultTypeSubgraphAdapterConfig, VaultTypeV3AdapterConfig } from "../services/vaults/vaultMetaService/index.js"; import type { IVaultEntity } from "../entities/Account.js"; import { type BuildQueryFn, type QueryCacheConfig } from "../utils/buildQuery.js"; import { type FallbackInfo } from "../utils/fallbackAdapter.js"; import type { EulerPlugin } from "../plugins/types.js"; export interface BuildSDKOverrides { abiService?: IABIService; deploymentService?: IDeploymentService; providerService?: IProviderService; accountService?: IAccountService; portfolioService?: IPortfolioService; walletService?: IWalletService; eVaultService?: IEVaultService; eulerEarnService?: IEulerEarnService; securitizeVaultService?: ISecuritizeVaultService; vaultMetaService?: IVaultMetaService; eulerLabelsService?: IEulerLabelsService; tokenlistService?: ITokenlistService; swapService?: ISwapService; executionService?: IExecutionService; priceService?: IPriceService; rewardsService?: IRewardsService; intrinsicApyService?: IIntrinsicApyService; oracleAdapterService?: IOracleAdapterService; feeFlowService?: IFeeFlowService; reulLockService?: IREULLockService; safeAccountService?: ISafeAccountService; positionMigrationService?: IPositionMigrationService; activityService?: IActivityService; } export type { EulerSDKConfig } from "./config.js"; export interface BuildSDKOptions { /** * SDK-owned runtime config for built-in scalar options. Values here override * top-level service config props, environment variables, and defaults. */ config?: EulerSDKConfig; /** Optional API key propagated to built-in V3 HTTP adapters as `X-API-Key`. */ v3ApiKey?: string; accountServiceConfig?: AccountServiceConfig; eVaultServiceConfig?: EVaultServiceConfig; eulerEarnServiceConfig?: EulerEarnServiceConfig; accountVaultsAdapterConfig?: AccountVaultsSubgraphAdapterConfig; vaultTypeAdapterConfig?: VaultTypeSubgraphAdapterConfig | VaultTypeV3AdapterConfig; /** Additional vault services to register; use { type, service } to register a custom vault type for getFactoryByType(chainId, type). Pass the extended entity type as the generic (e.g. buildEulerSDK({ ..., additionalVaultServices: [{ type: 'CustomVault', service: customService }] })). */ additionalVaultServices?: VaultServiceEntry[]; eulerLabelsAdapterConfig?: EulerLabelsURLAdapterConfig; tokenlistServiceConfig?: TokenlistServiceConfig; swapServiceConfig?: SwapServiceConfig; pricingServiceConfig?: PricingServiceConfig; rewardsServiceConfig?: RewardsServiceConfig; intrinsicApyServiceConfig?: IntrinsicApyServiceConfig; oracleAdapterServiceConfig?: OracleAdapterServiceConfig; feeFlowServiceConfig?: FeeFlowServiceConfig; positionMigrationServiceConfig?: PositionMigrationServiceConfig; positionMigrationConnectorConfig?: { morpho?: MorphoMigrationConnectorConfig; aave?: AaveMigrationConnectorConfig; metamorpho?: MetamorphoMigrationConnectorConfig; }; /** Configuration for the built-in V3 activity adapter. */ activityServiceConfig?: ActivityServiceConfig; /** Default in-memory cache applied to all decorated `query*` methods. Enabled by default with 5s success and failure TTLs. */ queryCacheConfig?: QueryCacheConfig; /** Optional query decorator applied to all query* functions across all services. Use for global logging, caching, profiling, etc. */ buildQuery?: BuildQueryFn; /** Plugins that enrich on-chain reads (via batchSimulation) and transaction plans (via processPlan). */ plugins?: EulerPlugin[]; /** * Optional callback invoked whenever a built-in fallback adapter routes a call from the primary * to the secondary. Use for telemetry, dashboards, or in-app diagnostics. */ onFallback?: (info: FallbackInfo) => void; servicesOverrides?: BuildSDKOverrides; } export declare function buildEulerSDK(options?: BuildSDKOptions): Promise>; //# sourceMappingURL=buildSDK.d.ts.map