import { type Hex } from 'viem';
import { Action, EntityManagerConfig, EntityManagerService, EntityManagerTransactionReceipt, EntityType, ManageEntityOptions } from './types';
export declare class EntityManagerClient implements EntityManagerService {
    private readonly audiusWalletClient;
    private readonly logger;
    private readonly chainId;
    private readonly contractAddress;
    private readonly endpoint;
    constructor(config_: EntityManagerConfig);
    /**
     * Calls the manage entity method on chain to update some data
     */
    manageEntity({ userId, entityType, entityId, action, metadata, confirmationTimeout, skipConfirmation }: ManageEntityOptions): Promise<EntityManagerTransactionReceipt>;
    /**
     * 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): {
        userId: bigint;
        entityType: EntityType;
        entityId: bigint;
        action: Action;
        metadata: string;
        nonce: `0x${string}`;
        subjectSig: `0x${string}`;
    };
    /**
     * Gets the domain used for proxy signing for the entity manager
     * @returns The domain object
     */
    private getDomain;
    /**
     * Recovers the signer address from the encoded ABI
     * @param encodedABI - The encoded ABI
     * @returns The recovered signer address
     */
    recoverSigner(encodedABI: Hex): Promise<`0x${string}`>;
}
