import { PublicKey, Transaction } from '@solana/web3.js';
import { TurnkeyConfig } from '../turnkeyClient.js';
import { SvmTransactionSigner } from './solana-web3js.js';
/**
 * Turnkey signer for Solana/SVM transactions
 * Provides a Keypair-like interface but signs transactions using Turnkey's secure enclaves
 * Uses composition to access Turnkey functionality while implementing SVM interface
 *
 * @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: 'base58-solana-pubkey',
 * };
 *
 * const signer = new TurnkeySealevelSigner(config);
 *
 * // Use with SvmMultiProtocolSignerAdapter
 * const adapter = new SvmMultiProtocolSignerAdapter(
 *   'solana',
 *   signer,
 *   multiProtocolProvider
 * );
 * ```
 */
export declare class TurnkeySealevelSigner implements SvmTransactionSigner {
    private readonly manager;
    private readonly turnkeySigner;
    readonly publicKey: PublicKey;
    constructor(config: TurnkeyConfig);
    /**
     * Health check - delegates to manager
     */
    healthCheck(): Promise<boolean>;
    /**
     * Get a signer (returns this instance)
     */
    getSigner(): Promise<this>;
    /**
     * Sign a Solana transaction using Turnkey
     * This method uses Turnkey's secure enclave to sign the transaction
     * and enforces any policies configured in Turnkey (e.g., IGP-only restrictions)
     */
    signTransaction(transaction: Transaction): Promise<Transaction>;
}
//# sourceMappingURL=turnkey.d.ts.map