import { BaseWalletAdapter, SendTransactionOptions, WalletName, WalletReadyState, TransactionOrVersionedTransaction } from "@solana/wallet-adapter-base";
import { PublicKey, Keypair, type Connection, type Transaction, type VersionedTransaction, TransactionVersion } from "@solana/web3.js";
import EventEmitter from "eventemitter3";
import { EncryptInput, DecryptInput } from "./types";
interface E2EWallet extends EventEmitter {
    isE2E?: boolean;
    connect(): Promise<string>;
    disconnect(): Promise<void>;
    signTransaction<T extends Transaction | VersionedTransaction>(tx: T, publicKey?: PublicKey): Promise<T>;
    sendTransactionWithSigners<T extends Transaction | VersionedTransaction>(transaction: T, connection: Connection, signers?: Keypair[]): Promise<T>;
    signAllTransaction<T extends Transaction | VersionedTransaction>(txs: T[], publicKey?: PublicKey): Promise<T[]>;
    signMessage(msg: Uint8Array, publicKey?: PublicKey): Promise<Uint8Array>;
    encrypt(inputs: EncryptInput[], publicKey?: PublicKey): Promise<DecryptInput[]>;
    decrypt(inputs: DecryptInput[], publicKey?: PublicKey): Promise<(string | null)[]>;
    isConnected: boolean;
}
export interface E2EWalletAdapterConfig {
    keypair?: Keypair;
}
export declare const E2EWalletName: WalletName<"E2E">;
export declare class E2EWalletAdapter extends BaseWalletAdapter {
    name: WalletName<"E2E">;
    url: string;
    icon: string;
    supportedTransactionVersions: ReadonlySet<TransactionVersion>;
    private _connecting;
    private _wallet;
    private _publicKey;
    private _underlyingWallet;
    private _readyState;
    constructor(config?: E2EWalletAdapterConfig);
    get publicKey(): PublicKey | null;
    get connecting(): boolean;
    get connected(): boolean;
    get readyState(): WalletReadyState;
    get wallet(): E2EWallet | null;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    sendTransaction(transaction: TransactionOrVersionedTransaction<this["supportedTransactionVersions"]>, connection: Connection, options: SendTransactionOptions, signers?: Keypair[]): Promise<string>;
    sendTransactionWithSigners<T extends TransactionOrVersionedTransaction<this["supportedTransactionVersions"]>>(transaction: T, connection: Connection, signers?: Keypair[]): Promise<string>;
    signTransaction(transaction: TransactionOrVersionedTransaction<this["supportedTransactionVersions"]>): TransactionOrVersionedTransaction<this["supportedTransactionVersions"]>;
    signAllTransactions<T extends TransactionOrVersionedTransaction<this["supportedTransactionVersions"]>>(transactions: T[]): Promise<T[]>;
    signMessage(message: Uint8Array): Promise<Uint8Array>;
    private _accountChanged;
}
export {};
//# sourceMappingURL=e2e.d.ts.map