import { type Hex } from 'viem';
import type { TransactionReceipt } from 'web3-core';
import { EntityManagerConfig, EntityManagerService, ManageEntityOptions } from './types';
export declare class EntityManagerClient implements EntityManagerService {
    private readonly discoveryNodeSelector;
    private readonly audiusWalletClient;
    private readonly logger;
    private readonly chainId;
    private readonly contractAddress;
    private publicClient;
    constructor(config_: EntityManagerConfig);
    private getClient;
    /**
     * Calls the manage entity method on chain to update some data
     */
    manageEntity({ userId, entityType, entityId, action, metadata, confirmationTimeout, skipConfirmation }: ManageEntityOptions): Promise<Pick<TransactionReceipt, 'blockHash' | 'blockNumber'>>;
    /**
     * Confirms a write by polling for the block to be indexed by the selected
     * discovery node
     */
    confirmWrite({ blockHash, blockNumber, confirmationTimeout, confirmationPollingInterval }: {
        blockHash: string;
        blockNumber: number;
        confirmationTimeout?: number;
        confirmationPollingInterval?: number;
    }): Promise<boolean>;
    /**
     * Decodes the manage entity function data
     * @param data - The encoded function data
     * @returns The decoded function data
     */
    decodeManageEntity(data: Hex): Promise<{
        args: readonly unknown[] | undefined;
        functionName: string;
    }>;
    /**
     * Gets the current block
     * @returns The current block
     */
    getCurrentBlock(): Promise<{
        timestamp: number;
        number: bigint;
        size: bigint;
        nonce: `0x${string}`;
        hash: `0x${string}`;
        logsBloom: `0x${string}`;
        baseFeePerGas: bigint | null;
        blobGasUsed: bigint;
        difficulty: bigint;
        excessBlobGas: bigint;
        extraData: `0x${string}`;
        gasLimit: bigint;
        gasUsed: bigint;
        miner: `0x${string}`;
        mixHash: `0x${string}`;
        parentBeaconBlockRoot?: `0x${string}` | undefined;
        parentHash: `0x${string}`;
        receiptsRoot: `0x${string}`;
        sealFields: `0x${string}`[];
        sha3Uncles: `0x${string}`;
        stateRoot: `0x${string}`;
        totalDifficulty: bigint | null;
        transactionsRoot: `0x${string}`;
        uncles: `0x${string}`[];
        withdrawals?: import("viem").Withdrawal[] | undefined;
        withdrawalsRoot?: `0x${string}` | undefined;
        transactions: `0x${string}`[];
    }>;
    /**
     * Gets the domain used for proxy signing for the entity manager
     * @returns The domain object
     */
    private getDomain;
}
