import { api } from '../managers/LitChainClient'; import { getPKPsByAddress } from '../managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/getPKPsByAddress'; import { PkpIdentifierRaw } from '../managers/LitChainClient/apis/rawContractApis/permissions/utils/resolvePkpTokenId'; import type { ExpectedAccountOrWalletClient } from '../managers/contract-manager/createContractsManager'; import { INetworkConfig } from '../interfaces/NetworkContext'; import type { PKPStorageProvider } from '../../../../storage/types'; import { AuthData } from '@lit-protocol/schemas'; export type CreateChainManagerReturn = { api: { mintWithEoa: (req?: Parameters[0]) => ReturnType; mintPKP: (req: Parameters[0]) => ReturnType; mintWithMultiAuths: (req: Parameters[0]) => ReturnType; pkpPermissionsManager: (pkpIdentifier: PkpIdentifierRaw) => InstanceType; paymentManager: () => InstanceType; getPKPsByAuthData: (authData: Partial, pagination?: { limit?: number; offset?: number; }, storageProvider?: PKPStorageProvider) => ReturnType; getPKPsByAddress: (params: { ownerAddress: string; pagination?: { limit?: number; offset?: number; }; storageProvider?: PKPStorageProvider; }) => ReturnType; pricing: { getPriceFeedInfo: (req: Parameters[0]) => ReturnType; getNodePrices: (req: Parameters[0]) => ReturnType; }; connection: { getConnectionInfo: (args?: { nodeProtocol?: string | null; }) => ReturnType; }; }; }; /** * Factory function that creates a chain manager for any environment * This eliminates code duplication by providing a single implementation * that can be configured with different network configurations */ export declare const createChainManagerFactory: (networkConfig: INetworkConfig, accountOrWalletClient: ExpectedAccountOrWalletClient) => CreateChainManagerReturn; /** * Creates a read-only chain manager using the factory pattern * This is used for operations that don't require a specific user account */ export declare const createReadOnlyChainManagerFactory: (networkConfig: any) => () => CreateChainManagerReturn;