import { type PublicClient, type WalletClient } from "viem"; import type { AppConfig } from "../config/env.js"; export type SignerKind = "celo" | "self_agent"; export interface CeloClients { public: PublicClient; wallet?: WalletClient; accountAddress?: `0x${string}`; } export declare class CeloClientFactory { private readonly config; private publicClient; private walletClients; constructor(config: AppConfig); getPublicClient(): PublicClient; /** Default signer: CELO_PRIVATE_KEY when set, otherwise SELF_AGENT_PRIVATE_KEY. */ getDefaultSigner(): SignerKind | undefined; /** Non-throwing check: is this signer's private key configured? */ hasSigner(signer: SignerKind): boolean; resolveSigner(signer?: SignerKind): SignerKind; private formatKeyErrors; getClients(signer?: SignerKind): CeloClients; /** Legacy accessor — returns CELO wallet when configured. */ getClientsLegacy(): CeloClients; }