import type { ConnectParam, RpcInput } from '@particle-network/auth-core';
import type { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';
export declare class SolanaWallet {
    readonly isParticleNetwork = true;
    isSocialConnecting?: boolean;
    name: string;
    url: string;
    icon: string;
    on(event: string, listener: (...args: any[]) => void): this;
    once(event: string, listener: (...args: any[]) => void): this;
    off(event: string, listener: (...args: any[]) => void): this;
    removeListener(event: string, listener: (...args: any[]) => void): this;
    get isConnected(): boolean;
    get connecting(): boolean;
    get connected(): boolean;
    get publicKey(): PublicKey | null;
    get selectedAddress(): string | null;
    get chainId(): number;
    connect(param?: ConnectParam): Promise<void>;
    disconnect(): Promise<void>;
    signTransaction: <T extends Transaction | VersionedTransaction>(transaction: T, chainId?: number) => Promise<T>;
    signAllTransactions: <T extends Transaction | VersionedTransaction>(transactions: T[], chainId?: number) => Promise<T[]>;
    signAndSendTransaction: <T extends Transaction | VersionedTransaction>(transaction: T, chainId?: number) => Promise<{
        signature: string;
    }>;
    signMessage: (message: Uint8Array) => Promise<{
        signature: Uint8Array;
    }>;
    switchChain: (chainId: number) => Promise<void>;
    request(data: Partial<RpcInput>): Promise<any>;
}
