import { ethers } from 'ethers'; import { TurnkeyConfig } from '../turnkeyClient.js'; /** * Turnkey signer for EVM transactions * Uses Turnkey's secure enclaves to sign transactions without exposing private keys * This is a custom ethers v5-compatible Signer that uses Turnkey SDK directly * Uses composition to access Turnkey functionality while extending ethers.Signer * * @example * ```typescript * const config: TurnkeyConfig = { * organizationId: 'your-org-id', * apiPublicKey: process.env.TURNKEY_API_PUBLIC_KEY, * apiPrivateKey: process.env.TURNKEY_API_PRIVATE_KEY, * privateKeyId: 'your-private-key-id', * publicKey: '0x...', // Ethereum address * }; * * const provider = new ethers.providers.JsonRpcProvider('...'); * const signer = new TurnkeyEvmSigner(config, provider); * * // Use with MultiProvider * multiProvider.setSigner('ethereum', signer); * ``` */ export declare class TurnkeyEvmSigner extends ethers.Signer { private readonly manager; readonly address: string; readonly provider: ethers.providers.Provider | undefined; constructor(config: TurnkeyConfig, provider?: ethers.providers.Provider); /** * Health check - delegates to manager */ healthCheck(): Promise; /** * Get an ethers Signer connected to the provided provider * This returns a new instance with the provider connected */ getSigner(provider: ethers.providers.Provider): Promise; /** * Connect this signer to a provider (creates new instance with proper configuration) */ connect(provider: ethers.providers.Provider): TurnkeyEvmSigner; /** * Get the address of this signer */ getAddress(): Promise; /** * Sign a transaction using Turnkey */ signTransaction(transaction: ethers.providers.TransactionRequest): Promise; /** * Sign a message using Turnkey */ signMessage(message: string | ethers.utils.Bytes): Promise; /** * Populate a transaction with default values (nonce, gas, etc.) */ populateTransaction(transaction: ethers.providers.TransactionRequest): Promise; } //# sourceMappingURL=turnkey.d.ts.map