import type { IVaultEntity } from "../entities/Account.js"; import type { IAccountService } from "../services/accountService/index.js"; import type { IPortfolioService } from "../services/portfolioService/index.js"; import type { IDeploymentService } from "../services/deploymentService/index.js"; import type { IEVaultService } from "../services/vaults/eVaultService/index.js"; import type { IEulerEarnService } from "../services/vaults/eulerEarnService/index.js"; import type { ISecuritizeVaultService } from "../services/vaults/securitizeVaultService/index.js"; import type { IVaultMetaService, VaultEntity } from "../services/vaults/vaultMetaService/index.js"; import type { IProviderService } from "../services/providerService/index.js"; import type { IABIService } from "../services/abiService/index.js"; import type { IEulerLabelsService } from "../services/eulerLabelsService/index.js"; import type { ITokenlistService } from "../services/tokenlistService/index.js"; import type { ISwapService } from "../services/swapService/index.js"; import type { IExecutionService } from "../services/executionService/index.js"; import type { IWalletService } from "../services/walletService/index.js"; import type { IPriceService } from "../services/priceService/index.js"; import type { IRewardsService } from "../services/rewardsService/index.js"; import type { IIntrinsicApyService } from "../services/intrinsicApyService/index.js"; import type { IOracleAdapterService } from "../services/oracleAdapterService/index.js"; import type { IFeeFlowService } from "../services/feeFlowService/index.js"; import type { IREULLockService } from "../services/reulLockService/index.js"; import { type ISafeAccountService } from "../services/safeAccountService/index.js"; import type { IPositionMigrationService } from "../services/positionMigrationService/index.js"; import { type IActivityService, type IActivityServiceWithLiquidations } from "../services/activityService/index.js"; import type { EulerPlugin, PluginPrefetchData } from "../plugins/types.js"; import type { TransactionPlan } from "../services/executionService/executionServiceTypes.js"; import type { AddressOrAccount } from "../entities/Account.js"; export interface EulerSDKOptions { accountService: IAccountService; portfolioService: IPortfolioService; walletService: IWalletService; eVaultService: IEVaultService; eulerEarnService: IEulerEarnService; securitizeVaultService: ISecuritizeVaultService; vaultMetaService: IVaultMetaService; deploymentService: IDeploymentService; providerService: IProviderService; abiService: IABIService; eulerLabelsService: IEulerLabelsService; tokenlistService: ITokenlistService; swapService: ISwapService; executionService: IExecutionService; priceService: IPriceService; rewardsService: IRewardsService; intrinsicApyService: IIntrinsicApyService; oracleAdapterService: IOracleAdapterService; feeFlowService: IFeeFlowService; reulLockService: IREULLockService; /** Defaults to a `SafeAccountService` built on `providerService` when omitted. */ safeAccountService?: ISafeAccountService; positionMigrationService: IPositionMigrationService; activityService?: IActivityService; plugins?: EulerPlugin[]; } export declare class EulerSDK { readonly accountService: IAccountService; readonly portfolioService: IPortfolioService; readonly walletService: IWalletService; readonly eVaultService: IEVaultService; readonly eulerEarnService: IEulerEarnService; readonly securitizeVaultService: ISecuritizeVaultService; readonly vaultMetaService: IVaultMetaService; readonly deploymentService: IDeploymentService; readonly providerService: IProviderService; readonly abiService: IABIService; readonly eulerLabelsService: IEulerLabelsService; readonly tokenlistService: ITokenlistService; readonly swapService: ISwapService; readonly executionService: IExecutionService; readonly priceService: IPriceService; readonly rewardsService: IRewardsService; readonly intrinsicApyService: IIntrinsicApyService; readonly oracleAdapterService: IOracleAdapterService; readonly feeFlowService: IFeeFlowService; readonly reulLockService: IREULLockService; readonly safeAccountService: ISafeAccountService; readonly positionMigrationService: IPositionMigrationService; /** * Always exposes the built-in liquidations guarantee: custom overrides * without `fetchLiquidations` are wrapped so the method stays callable * and reports activity-unavailable at runtime. */ readonly activityService: IActivityServiceWithLiquidations; readonly plugins: EulerPlugin[]; constructor(options: EulerSDKOptions); /** * Run all plugins' processPlan methods on a transaction plan. * Plugins execute in array order; each receives the plan as modified by previous plugins. * Every plugin failure is propagated. A write plan must never continue after * silently omitting plugin effects such as oracle updates or access gates. * * `prefetch` carries per-plugin form-level data (Pyth Hermes updates, * keyring vault gating, …) so the plugin can skip its own network I/O. */ processPlugins(plan: TransactionPlan, account: AddressOrAccount, chainId: number, prefetch?: PluginPrefetchData): Promise; /** * Resolve each plugin's prefetch payload for a given plan. Returns an open * record keyed by plugin name; known SDK slots (`pyth`, `keyring`) are * typed. Run once per form-load so per-quote prepare/estimate/simulate can * pass the result back via `processPlugins(plan, account, chainId, prefetch)` * without re-doing the expensive lookups. Every plugin failure is propagated; * callers must not mistake missing safety evidence for an empty payload. */ prefetchPluginData(plan: TransactionPlan, account: AddressOrAccount, chainId: number): Promise; } //# sourceMappingURL=sdk.d.ts.map