import { HexString } from '../types/index.js'; import { AssetId, CentrifugeId, ShareClassId } from '../utils/types.js'; import { BalanceSheet } from './BalanceSheet.js'; import { Entity } from './Entity.js'; import { MerkleProofManager } from './MerkleProofManager.js'; import { OnOffRampManager } from './OnOffRampManager.js'; import type { Pool } from './Pool.js'; import { ShareClass } from './ShareClass.js'; export declare enum VaultManagerTrustedCall { Valuation = 0, MaxReserve = 1 } /** * Query and interact with a pool on a specific network. */ export declare class PoolNetwork extends Entity { pool: Pool; centrifugeId: CentrifugeId; /** * Query the details of the pool on a network. * @returns The details, including whether the pool is active, whether any of the share classes have been deployed, * and any deployed vaults. */ details(): import("../index.js").Query<{ isActive: boolean; activeShareClasses: { shareClass: ShareClass; id: ShareClassId; shareToken: `0x${string}`; vaults: import("./Vault.js").Vault[]; }[]; }>; balanceSheet(scId: ShareClassId): import("../index.js").Query; /** * Get the details of the share token. * @param scId - The share class ID */ shareCurrency(scId: ShareClassId): import("../index.js").Query; /** * Get the deployed Vaults for a given share class. There may exist one Vault for each allowed investment currency. * Vaults are used to submit/claim investments and redemptions. * @param scId - The share class ID * @param includeUnlinked - Whether to include unlinked vaults */ vaults(scId: ShareClassId, includeUnlinked?: boolean): import("../index.js").Query; /** * Get a specific Vault for a given share class and investment currency. * @param scId - The share class ID * @param asset - The investment currency address or asset ID */ vault(scId: ShareClassId, asset: HexString | AssetId): import("../index.js").Query; /** * Get whether the pool is active on this network. It's a prerequisite for deploying vaults, * and doesn't indicate whether any vaults have been deployed. */ isActive(): import("../index.js").Query; merkleProofManager(): import("../index.js").Query; /** * Compute the deterministic address for a Merkle Proof Manager before deployment. * @returns The predicted contract address */ computeMerkleProofManagerAddress(): Promise; /** * Register a Merkle Proof Manager as a Balance Sheet Manager. * @param managerAddress - The manager's contract address */ registerMerkleProofManagerAsBSManager(managerAddress: HexString): import("../types/transaction.js").Transaction; /** * Deploy a Merkle Proof Manager, or reuse an already deployed one, and register it as a Balance Sheet Manager. */ deployMerkleProofManager(): PromiseLike & import("rxjs").Observable & { toPromise: () => Promise; } & { centrifugeId: number; }; /** * Get the OnOffRampManager for a given share class. * @param scId - The share class ID * @returns The OnOffRampManager */ onOfframpManager(scId: ShareClassId): import("../index.js").Query; /** * Get all OnOffRampManagers for a given share class and assign balance sheet manager permissions. * @param scId - The share class ID */ assignOnOffRampManagerPermissions(scId: ShareClassId): import("../types/transaction.js").Transaction; /** * Compute the deterministic address for an OnOffRampManager before deployment. * @param scId - The share class ID * @returns The predicted contract address */ computeOnOffRampManagerAddress(scId: ShareClassId): Promise; /** * Deploy an On/Off Ramp Manager for a share class. * Yields the deployed manager address as a custom 'DeployedOnOfframpManager' status. * @param scId - The share class ID */ deployOnOfframpManager(scId: ShareClassId): import("../types/transaction.js").Transaction; /** * Register an On/Off Ramp Manager as a Balance Sheet Manager. * Use this with the address obtained from deployOnOfframpManager(). * @param managerAddress - The deployed manager's contract address */ registerOnOffRampManagerAsBSManager(managerAddress: HexString): import("../types/transaction.js").Transaction; /** * Deploy an On/Off Ramp Manager and register it as a Balance Sheet Manager. * @param scId */ deployAndRegisterOnOffRampManager(scId: ShareClassId): PromiseLike & import("rxjs").Observable & { toPromise: () => Promise; } & { centrifugeId: number; }; private _deployedMerkleProofManagerAddress; private _findDeployedMerkleProofManagerAddress; private _deployedOnOffRampManagers; private _findDeployedOnOffRampManagerAddress; /** * Enable share classes on this network. * @param shareClasses - An array of share classes to enable */ deployShareClasses(shareClasses: { id: ShareClassId; hook: HexString; }[]): import("../types/transaction.js").Transaction; /** * Deploy vaults for share classes that are already enabled on this network. * @param vaults - An array of vaults to deploy */ deployVaults(vaults: { shareClassId: ShareClassId; assetId: AssetId; kind: 'async' | 'syncDeposit'; factory?: HexString; }[]): import("../types/transaction.js").Transaction; /** * Enable and deploy share classes/vaults. * @param shareClasses - An array of share classes to enable * @param vaults - An array of vaults to deploy */ deploy(shareClasses: { id: ShareClassId; hook: HexString; }[], vaults: { shareClassId: ShareClassId; assetId: AssetId; kind: 'async' | 'syncDeposit'; factory?: HexString; }[]): import("../types/transaction.js").Transaction; /** * Unlink vaults. * @param vaults - An array of vaults to unlink */ unlinkVaults(vaults: { shareClassId: ShareClassId; assetId: AssetId; address: HexString; }[]): import("../types/transaction.js").Transaction; /** * Link vaults that are already deployed but currently unlinked. * @param vaults - An array of vaults to link. */ linkVaults(vaults: { shareClassId: ShareClassId; assetId: AssetId; address: HexString; }[]): import("../types/transaction.js").Transaction; } //# sourceMappingURL=PoolNetwork.d.ts.map