import type { PlatformUtils, TPregenIdentifierType, EventHandler, EventData, Ctx, SignatureRes } from '@getpara/web-sdk';
import { BackupKitEmailProps, TWalletType, SDKType } from '@getpara/user-management-client';
import { AsyncStorage } from '../AsyncStorage.js';
import { KeychainStorage } from '../KeychainStorage.js';
export declare class ReactNativeUtils implements PlatformUtils {
    sdkType: SDKType;
    disableProviderModal?: boolean | undefined;
    localStorage: AsyncStorage;
    sessionStorage: AsyncStorage;
    secureStorage: KeychainStorage;
    isSyncStorage: boolean;
    transactionReviewHandler?: (url: string) => void;
    private eventHandlers;
    addEventListener<T = EventData>({ event, handler }: {
        ctx: Ctx;
        event: string;
        handler: EventHandler<T>;
    }): void;
    removeEventListener<T = EventData>({ event, handler }: {
        event: string;
        handler: EventHandler<T>;
    }): void;
    postMessage({ data }: {
        data: EventData;
        target?: string;
    }): void;
    emitEvent<T = EventData>({ event, data }: {
        event: string;
        data: T;
    }): void;
    generateBlumPrimes(_ctx: Ctx): Promise<{
        p: string;
        q: string;
    }>;
    keygen(ctx: Ctx, userId: string, type: Exclude<TWalletType, 'SOLANA'>, _secretKey: string | null, _sessionCookie: string, _emailProps?: BackupKitEmailProps | undefined): Promise<{
        signer: string;
        walletId: string;
    }>;
    refresh(_ctx: Ctx, _sessionCookie: string, _userId: string, _walletId: string, _share: string, _oldPartnerId?: string, _newPartnerId?: string): Promise<{
        signer: string;
    }>;
    preKeygen(_ctx: Ctx, _partnerId: string, _email: string, _secretKey: string | null, _sessionCookie: string): Promise<{
        signer: string;
        walletId: string;
    }>;
    getPrivateKey(_ctx: Ctx, _userId: string, _walletId: string, _share: string, _sessionCookie: string): Promise<string>;
    openPopup(popupUrl: string): any;
    private baseSignTransaction;
    sendTransaction(ctx: Ctx, userId: string, walletId: string, share: string, rlpEncodedTxBase64: string, chainId: string, _sessionCookie: string, isDKLS?: boolean): Promise<SignatureRes>;
    signHash(_address: string, _hash: string): Promise<{
        v: number;
        r: Buffer;
        s: Buffer;
    }>;
    signMessage(ctx: Ctx, userId: string, walletId: string, share: string, messageBase64: string, // base64 message
    _sessionCookie: string, isDKLS?: boolean): Promise<SignatureRes>;
    signTransaction(ctx: Ctx, userId: string, walletId: string, share: string, rlpEncodedTxBase64: string, // base64 encoding of rlp encoded tx
    chainId: string, _sessionCookie: string, isDKLS?: boolean): Promise<SignatureRes>;
    ed25519Keygen(ctx: Ctx, userId: string, _sessionCookie: string, _emailProps?: BackupKitEmailProps, type?: TWalletType): Promise<{
        signer: string;
        walletId: string;
    }>;
    ed25519PreKeygen(ctx: Ctx, pregenIdentifier: string, pregenIdentifierType: TPregenIdentifierType, _sessionCookie: string, type?: TWalletType): Promise<{
        signer: string;
        walletId: string;
    }>;
    ed25519Sign(ctx: Ctx, userId: string, walletId: string, share: string, base64Bytes: string, _sessionCookie: string): Promise<SignatureRes>;
    initializeWorker(_ctx: Ctx): Promise<void>;
}
