import { Abi, ExtractAbiFunctionNames, ExtractAbiFunction, AbiParametersToPrimitiveTypes } from "abitype";
import { Address, RpcStateOverride, Hex } from "viem";
import { AccountOpts, BuildUserOperationResponse, HttpPublicClient, SendUserOperationResponse } from "./types";
export declare class AccountInstance {
private readonly accountAbi;
private readonly factoryAbi;
private readonly factoryAddress;
private readonly entryPointAddress;
readonly ethClient: P;
private readonly bundlerClient;
private salt;
private waitTimeoutMs;
private waitIntervalMs;
private sender;
private initCode;
callData: Hex;
private nonceKey;
private stateOverrideSet?;
private readonly setFactoryData;
private readonly requestSignature;
private readonly requestGasPrice;
private readonly requestGasValues;
private readonly requestPaymaster?;
private readonly onBuild?;
constructor(opts: AccountOpts);
private getInitCode;
private getChainId;
private getByteCode;
private resolveSenderMeta;
getWaitTimeoutMs(): number;
setWaitTimeoutMs(time: number): AccountInstance;
getWaitIntervalMs(): number;
setWaitIntervalMs(time: number): AccountInstance;
getSalt(): bigint;
setSalt(salt: bigint): AccountInstance;
getNonceKey(): bigint;
setNonceKey(key: bigint): AccountInstance;
getNonce(): Promise;
setStateOverrideSetForEstimate(stateOverrideSet: RpcStateOverride): AccountInstance;
clearStateOverrideSetForEstimate(): AccountInstance;
getSender(): Promise;
encodeCallData>(method: M, inputs: AbiParametersToPrimitiveTypes["inputs"]>): AccountInstance;
buildUserOperation(): Promise;
sendUserOperation(): Promise;
}