import type { EthereumProvider, JsonRpcRequest, JsonRpcResponse } from "../../../../../../types/providers.js";
import type { RequestHandler } from "../../types.js";
/**
 * This class modifies JSON-RPC requests.
 * It checks if the request is related to transactions and ensures that the "from" field is populated with a sender account if it's missing.
 * If no account is available for sending transactions, it throws an error.
 * The class also provides a mechanism to retrieve the sender account, which must be implemented by subclasses.
 */
export declare abstract class SenderHandler implements RequestHandler {
    protected readonly provider: EthereumProvider;
    constructor(provider: EthereumProvider);
    handle(jsonRpcRequest: JsonRpcRequest): Promise<JsonRpcRequest | JsonRpcResponse>;
    protected abstract getSender(): Promise<string | undefined>;
}
//# sourceMappingURL=sender.d.ts.map