import { BehaviorSubject } from 'rxjs';
import { State, StateService } from './state';
import { WalletProviderLike } from './wallet';
import { PaymasterApi, SdkOptions } from './interfaces';
import { Network } from './network';
import { BatchUserOpsRequest, UserOpsRequest } from './common';
import { BigNumber, BigNumberish, ethers, TypedDataField } from 'ethers';
import { UserOperationStruct } from './contracts/account-abstraction/contracts/core/BaseAccount';
import { TransactionGasInfoForUserOp } from './base/TransactionDetailsForUserOp';
import { OnRamperDto, SignMessageDto } from './dto';
export declare class PrimeSdk {
    private etherspotWallet;
    private bundler;
    private chainId;
    private factoryUsed;
    private index;
    constructor(walletProvider: WalletProviderLike, optionsLike: SdkOptions);
    get state(): StateService;
    get state$(): BehaviorSubject<State>;
    get supportedNetworks(): Network[];
    destroy(): void;
    signMessage(dto: SignMessageDto): Promise<string>;
    getCounterFactualAddress(): Promise<string>;
    getAccountInitCode(): Promise<string>;
    estimate(params?: {
        paymasterDetails?: PaymasterApi;
        gasDetails?: TransactionGasInfoForUserOp;
        callGasLimit?: BigNumberish;
        key?: number;
    }, userOpsBatch?: BatchUserOpsRequest): Promise<UserOperationStruct>;
    getGasFee(): Promise<import("./common").Gas>;
    send(userOp: UserOperationStruct): Promise<string>;
    signTypedData(DataFields: TypedDataField[], message: any): Promise<string>;
    getNativeBalance(): Promise<string>;
    getUserOpReceipt(userOpHash: string): Promise<any>;
    getUserOpHash(userOp: UserOperationStruct): Promise<string>;
    addUserOpsToBatch(tx: UserOpsRequest, userOpsBatch?: BatchUserOpsRequest): Promise<BatchUserOpsRequest>;
    clearUserOpsFromBatch(): Promise<void>;
    getAccountContract(): Promise<ethers.Contract | import("./contracts").EtherspotWallet>;
    totalGasEstimated(userOp: UserOperationStruct): Promise<BigNumber>;
    getFiatOnRamp(params?: OnRamperDto): Promise<string>;
}
