import { Hex } from 'viem';
import { StrictUnsignedTempoTransactionRequest, StrictUnsignedTransactionRequest, StrictUnsignedTransactionRequestWithChainId } from '@privy-io/ethereum';
export { StrictUnsignedTempoTransactionRequest } from '@privy-io/ethereum';
import { B as BaseConnectedEthereumWallet } from './types-D4oWUR5Y.js';
export { P as PrivyViemAccount, t as toViemAccount } from './toViemAccount-D05NL1n7.js';
import '@coinbase/wallet-sdk';
import '@simplewebauthn/browser';
import '@solana/kit';
import 'react';
import '@privy-io/api-types';
import '@privy-io/js-sdk-core';
import '@base-org/account';
import '@wallet-standard/base';
import '@solana/wallet-standard-features';
import '@wallet-standard/features';
import 'eventemitter3';
import 'viem/accounts';
import 'viem/tempo';

type Quantity = Hex | number | bigint;
type DefaultableTempoTransactionRequest = Omit<StrictUnsignedTempoTransactionRequest, 'type' | 'chainId' | 'calls'> & {
    type?: StrictUnsignedTempoTransactionRequest['type'];
    chainId?: number;
    calls?: StrictUnsignedTempoTransactionRequest['calls'];
    to?: Hex | null;
    data?: Hex;
    value?: Quantity;
    gas?: Quantity;
    gasPrice?: Quantity;
    authorizationList?: StrictUnsignedTransactionRequest['authorizationList'];
};

type TempoOrEvmTransactionRequest$1 = StrictUnsignedTempoTransactionRequest | DefaultableTempoTransactionRequest | StrictUnsignedTransactionRequestWithChainId;
type SendTransactionInput = {
    transaction: TempoOrEvmTransactionRequest$1;
    wallet: BaseConnectedEthereumWallet;
};
type SendTransactionOptions = {
    sponsor?: boolean;
};
type UseSendTransaction = {
    sendTransaction: (input: SendTransactionInput, options?: SendTransactionOptions) => Promise<{
        hash: Hex;
    }>;
};
/**
 * Hook to send an EVM or Tempo (type 118) transaction via an embedded wallet.
 *
 * @experimental
 */
declare const useSendTransaction: () => UseSendTransaction;

type TempoOrEvmTransactionRequest = StrictUnsignedTempoTransactionRequest | DefaultableTempoTransactionRequest | StrictUnsignedTransactionRequestWithChainId;
type SignTransactionInput = {
    transaction: TempoOrEvmTransactionRequest;
    wallet: BaseConnectedEthereumWallet;
};
type UseSignTransaction = {
    signTransaction: (input: SignTransactionInput) => Promise<{
        signedTransaction: Hex;
    }>;
};
/**
 * Hook to sign an EVM or Tempo (type 118) transaction without broadcasting.
 *
 * @experimental
 */
declare const useSignTransaction: () => UseSignTransaction;

export { BaseConnectedEthereumWallet, useSendTransaction, useSignTransaction };
export type { UseSendTransaction, UseSignTransaction };
