///
import { EventEmitter } from "events";
import type { Address, EIP1193Events, EIP1193Parameters, Hash, Hex, PublicRpcSchema, TypedDataDefinition } from "viem";
import type { TransactionParams } from "../action/send-transaction/common";
import { HeadlessCore } from "./core";
export type HeadlessProviderType = EIP1193Events & {
request: (args: EIP1193Parameters) => Promise;
};
export type HeadlessProviderSchema = [
...PublicRpcSchema,
{
Method: "eth_accounts";
Parameters?: undefined;
ReturnType: Address[];
},
{
Method: "eth_requestAccounts";
Parameters?: undefined;
ReturnType: Address[];
},
{
Method: "eth_sendTransaction";
Parameters: [transaction: TransactionParams];
ReturnType: Hash;
},
{
Method: "eth_signTypedData_v4";
Parameters: [address: Address, typedData: TypedDataDefinition | string];
ReturnType: Hex;
},
{
Method: "personal_sign";
Parameters: [data: Hex, address: Address];
ReturnType: Hex;
}
];
export declare class HeadlessProvider extends EventEmitter implements HeadlessProviderType {
private core;
protected constructor(core: HeadlessCore);
static fromHeadlessCore: (core: HeadlessCore) => HeadlessProvider;
getAccounts: () => readonly [`0x${string}`] | never[];
requestAccounts: () => readonly [`0x${string}`];
personalSign: (params: [data: Hex, address: Address]) => Promise<`0x${string}`>;
signTypedDataV4: (params: [address: Address, data: TypedDataDefinition | string]) => Promise<`0x${string}`>;
request: (args: EIP1193Parameters) => Promise;
}