import { type Address } from "viem"; import { EVault, type IEVault } from "../../../entities/EVault.js"; import type { DeploymentService } from "../../deploymentService/index.js"; import type { FetchAllVaultsArgs, IVaultService } from "../index.js"; import type { IVaultMetaService } from "../vaultMetaService/index.js"; import type { IPriceService } from "../../priceService/index.js"; import type { IRewardsService } from "../../rewardsService/index.js"; import type { IIntrinsicApyService } from "../../intrinsicApyService/index.js"; import type { IEulerLabelsService } from "../../eulerLabelsService/index.js"; import type { DataIssue, ServiceResult } from "../../../utils/entityDiagnostics.js"; export interface IEVaultAdapter { fetchVaults(chainId: number, vault: Address[]): Promise>; fetchAllVaults(chainId: number): Promise>; fetchVerifiedVaultsAddresses(chainId: number, perspectives: Address[]): Promise; } /** * On-chain perspectives that can be passed to fetchVerifiedVaultAddresses / fetchVerifiedVaults. * * NOTE: "verified" here means "passed the perspective's on-chain checks", NOT "trusted": * - FACTORY only proves the vault was deployed through the EVK factory. Anyone can deploy * through the factory, so this is a discovery/provenance signal, not a trust signal. * - ESCROW vaults satisfy the escrowed collateral criteria by construction and can be trusted * as escrow collateral. * The curated on-chain whitelist (governedPerspective) is retired; trusted vault lists should * be derived from euler-labels (see eulerLabelsService / populateLabels) or your own allowlist. */ export declare enum StandardEVaultPerspectives { FACTORY = "evkFactoryPerspective", ESCROW = "escrowedCollateralPerspective" } export interface EVaultFetchOptions { /** When true, enables all supported populate steps and overrides granular populate flags. */ populateAll?: boolean; populateCollaterals?: boolean; populateMarketPrices?: boolean; populateRewards?: boolean; populateIntrinsicApy?: boolean; populateLabels?: boolean; } export interface IEVaultService extends IVaultService { fetchVault(chainId: number, vault: Address, options?: EVaultFetchOptions): Promise>; fetchVaults(chainId: number, vaults: Address[], options?: EVaultFetchOptions): Promise>; /** * Fetches all discoverable EVaults. * The optional async `filter` runs after the first fetch and before populate/enrichment work, * so rejected vaults are skipped before additional resources are spent on them. */ fetchAllVaults(chainId: number, args?: FetchAllVaultsArgs): Promise>; populateCollaterals(eVaults: EVault[]): Promise; populateMarketPrices(eVaults: EVault[]): Promise; populateRewards(eVaults: EVault[]): Promise; populateIntrinsicApy(eVaults: EVault[]): Promise; populateLabels(eVaults: EVault[]): Promise; } export declare class EVaultService implements IEVaultService { private adapter; private deploymentService; private vaultMetaService?; private priceService?; private rewardsService?; private intrinsicApyService?; private eulerLabelsService?; constructor(adapter: IEVaultAdapter, deploymentService: DeploymentService); setAdapter(adapter: IEVaultAdapter): void; setVaultMetaService(service: IVaultMetaService): void; setPriceService(service: IPriceService): void; setRewardsService(service: IRewardsService): void; setIntrinsicApyService(service: IIntrinsicApyService): void; setEulerLabelsService(service: IEulerLabelsService): void; factory(chainId: number): Address; fetchVault(chainId: number, vault: Address, options?: EVaultFetchOptions): Promise>; fetchVaults(chainId: number, vaults: Address[], options?: EVaultFetchOptions): Promise>; fetchAllVaults(chainId: number, args?: FetchAllVaultsArgs): Promise>; private hydrateFetchedVaults; populateCollaterals(eVaults: EVault[]): Promise; populateMarketPrices(eVaults: EVault[]): Promise; populateRewards(eVaults: EVault[]): Promise; populateIntrinsicApy(eVaults: EVault[]): Promise; populateLabels(eVaults: EVault[]): Promise; fetchVerifiedVaultAddresses(chainId: number, perspectives: (StandardEVaultPerspectives | Address)[]): Promise; fetchVerifiedVaults(chainId: number, perspectives: (StandardEVaultPerspectives | Address)[], options?: EVaultFetchOptions): Promise>; private resolveFetchOptions; } //# sourceMappingURL=eVaultService.d.ts.map