import { Chain, PublicClient } from 'viem'; export type Config = { environment: 'mainnet' | 'testnet'; rpcUrls?: Record; indexerUrl: string; ipfsUrl: string; /** * Whether to cache data * @default: true */ cache?: boolean; pollingInterval?: number; indexerPollingInterval?: number; pinJson?: (json: any) => Promise; pinFile?: (b64URI: string) => Promise; /** * Whether to disable EIP-2612 permit signatures and use standard ERC-20 approve instead. * Useful for Safe multisig wallets or integrations that don't support off-chain signing. */ permitDisabled?: boolean; /** * Whether to disable event-driven re-fetching of observable queries. * When true, observables will emit once and not re-subscribe on blockchain events. * Useful for apps that handle data freshness via external caching (e.g. React Query) * instead of relying on SDK-level event watching. */ disableRepeatOnEvents?: boolean; /** * If true, accept indexer-reported deployments for centrifugeIds that are not in * the bundled allowlist (KNOWN_DEPLOYMENTS). Mismatches against known deployments * still throw. Default: false (strict). * * Strict mode is the secure default — an attacker adding a fake centrifugeId via a * compromised indexer cannot slip past it. Enable only if you knowingly run an SDK * version that predates a legitimate new chain deployment. */ allowUnknownDeployments?: boolean; }; export type UserProvidedConfig = Partial; export type EnvConfig = { indexerUrl: string; ipfsUrl: string; pinFile: (b64URI: string) => Promise; pinJson: (json: any) => Promise; }; export type DerivedConfig = Config & EnvConfig; export type Client = PublicClient; export type HexString = `0x${string}`; export type CurrencyDetails = { address: HexString; tokenId: bigint; decimals: number; name: string; symbol: string; centrifugeId: number; supportsPermit: boolean; }; export type ProtocolContracts = { root: HexString; gasService: HexString; gateway: HexString; multiAdapter: HexString; messageProcessor: HexString; messageDispatcher: HexString; hubRegistry: HexString; accounting: HexString; holdings: HexString; shareClassManager: HexString; batchRequestManager: HexString; hub: HexString; identityValuation: HexString; poolEscrowFactory: HexString; globalEscrow: HexString; freezeOnlyHook: HexString; redemptionRestrictionsHook: HexString; fullRestrictionsHook: HexString; freelyTransferableHook: HexString; tokenFactory: HexString; asyncRequestManager: HexString; asyncVaultFactory: HexString; wormholeAdapter?: HexString; syncManager: HexString; subsidyManager: HexString; axelarAdapter?: HexString; syncDepositVaultFactory: HexString; spoke: HexString; vaultRegistry: HexString; vaultRouter: HexString; balanceSheet: HexString; merkleProofManagerFactory: HexString; onOfframpManagerFactory: HexString; tokenRecoverer: HexString; contractUpdater: HexString; vaultDecoder: HexString; circleDecoder: HexString; hubHandler: HexString; protocolGuardian: HexString; opsGuardian: HexString; refundEscrowFactory: HexString; queueManager: HexString; oracleValuation: HexString; navManager: HexString; simplePriceManager: HexString; layerZeroAdapter?: HexString; chainlinkAdapter?: HexString; }; //# sourceMappingURL=index.d.ts.map