import { HexString } from '../types/index.js'; import { PoolMetadataInput, ShareClassInput } from '../types/poolInput.js'; import { PoolMetadata } from '../types/poolMetadata.js'; import { AssetId, CentrifugeId, PoolId, ShareClassId } from '../utils/types.js'; import { Entity } from './Entity.js'; import { PoolNetwork } from './PoolNetwork.js'; import { PoolReports } from './Reports/PoolReports.js'; import { ShareClass } from './ShareClass.js'; export declare class Pool extends Entity { id: PoolId; get centrifugeId(): CentrifugeId; get reports(): PoolReports; /** * Query the details of the pool. * @returns The pool metadata, id, shareClasses and currency. */ details(): import("../index.js").Query<{ id: PoolId; currency: { name: string; symbol: string; decimals: number; }; metadata: PoolMetadata | null; shareClasses: { shareClass: ShareClass; details: { id: ShareClassId; name: string; symbol: string; totalIssuance: import("../index.js").Balance; pricePerShare: import("../index.js").Price; priceComputedAt: Date | null; nav: import("../index.js").Balance; navPerNetwork: { centrifugeId: number; totalIssuance: import("../index.js").Balance; pricePerShare: import("../index.js").Price; nav: import("../index.js").Balance; address: `0x${string}`; }[]; icon: import("../types/poolMetadata.js").FileType | null; minInitialInvestment: number | null; apyPercentage: number | null; apy: "target" | "7day" | "30day" | "90day" | "ytd" | "sinceInception" | "automatic" | null; defaultAccounts: { asset: number | null; equity: number | null; gain: number | null; loss: number | null; expense: number | null; liability: number | null; }; }; }[]; }>; metadata(): import("../index.js").Query; shareClasses(): import("../index.js").Query; shareClass(scId: ShareClassId): import("../index.js").Query; shareClassesDetails(): import("../index.js").Query<{ id: ShareClassId; name: string; symbol: string; totalIssuance: import("../index.js").Balance; pricePerShare: import("../index.js").Price; priceComputedAt: Date | null; nav: import("../index.js").Balance; navPerNetwork: { centrifugeId: number; totalIssuance: import("../index.js").Balance; pricePerShare: import("../index.js").Price; nav: import("../index.js").Balance; address: `0x${string}`; }[]; icon: import("../types/poolMetadata.js").FileType | null; minInitialInvestment: number | null; apyPercentage: number | null; apy: "target" | "7day" | "30day" | "90day" | "ytd" | "sinceInception" | "automatic" | null; defaultAccounts: { asset: number | null; equity: number | null; gain: number | null; loss: number | null; expense: number | null; liability: number | null; }; }[]>; /** * Get the managers on the Hub. * These managers that can manage the pool, approve deposits, update prices, etc. */ poolManagers(): import("../index.js").Query<{ address: `0x${string}`; }[]>; /** * Get the managers on the Balance Sheet. * These managers can transfer funds to and from the balance sheet. */ balanceSheetManagers(): import("../index.js").Query<{ address: `0x${string}`; centrifugeId: number; type: string; }[]>; /** * Check if an address is a manager of the pool. * @param address - The address to check */ isPoolManager(address: HexString): import("../index.js").Query; /** * Check if an address is a Balance Sheet manager of the pool. * @param centrifugeId - The centrifuge ID of the network to check * @param address - The address to check */ isBalanceSheetManager(centrifugeId: CentrifugeId, address: HexString): import("../index.js").Query; /** * Get all networks where a pool can potentially be deployed. */ networks(): import("../index.js").Query; /** * Get a specific network where a pool can potentially be deployed. * @param centrifugeId - The centrifuge ID of the network */ network(centrifugeId: CentrifugeId): import("../index.js").Query; /** * Deploy share classes to multiple networks in a single hub transaction. * @param deployments - A list of target networks with share classes to deploy */ deployToNetworks(deployments: { centrifugeId: CentrifugeId; shareClasses: { id: ShareClassId; hook: HexString; }[]; }[]): import("../types/transaction.js").Transaction | undefined; /** * Get the networks where a pool is active. It doesn't mean that any vaults are deployed there necessarily. */ activeNetworks(): import("../index.js").Query; /** * Get a specific vault for a given network, share class, and asset. * @param centrifugeId - The centrifuge ID of the network * @param scId - The share class ID * @param asset - The asset address or ID */ vault(centrifugeId: CentrifugeId, scId: ShareClassId, asset: HexString | AssetId): import("../index.js").Query; /** * Get the currency of the pool. */ currency(): import("../index.js").Query<{ name: string; symbol: string; decimals: number; }>; /** * Get the decimals of the pool, which is the precision of the share class tokens * and pool-denominated balances. May differ from the pool currency decimals. */ decimals(): import("../index.js").Query; /** * Update pool metadata. */ updateMetadata(metadata: PoolMetadata): import("../types/transaction.js").Transaction; update(metadataInput: (Partial | null) | undefined, updatedShareClasses: ({ id: ShareClassId; } & ShareClassInput)[], addedShareClasses?: ShareClassInput[]): import("../types/transaction.js").Transaction; /** * Update pool managers. */ updatePoolManagers(updates: { address: HexString; canManage: boolean; }[]): import("../types/transaction.js").Transaction; /** * Update balance sheet managers. */ updateBalanceSheetManagers(updates: { centrifugeId: CentrifugeId; address: HexString; canManage: boolean; }[]): import("../types/transaction.js").Transaction; /** * Set adapters for multiple networks at once. */ setAdapters(updates: { centrifugeId: CentrifugeId; localAdapters: HexString[]; remoteAdapters: HexString[]; threshold?: number; recoveryIndex?: number; }[]): import("../types/transaction.js").Transaction; /** * Get the configured adapters for a specific network. * @param centrifugeId - The centrifuge ID of the network */ adapters(centrifugeId: CentrifugeId): import("../index.js").Query<`0x${string}`[]>; createAccounts(accounts: { accountId: bigint; isDebitNormal: boolean; }[]): import("../types/transaction.js").Transaction; getEscrowAddress(): import("../index.js").Query<`0x${string}`>; } //# sourceMappingURL=Pool.d.ts.map