import { SUPPORT_METHODS } from "./consts";
import { Config, Name, Conflux as TypeConflux, Contracts, Address, Args } from "./interface";
import { namehash, dnsNameNotationDecode, labelhash } from "./utils";
export default class CoreidUtils {
    readonly config: {
        networkId: number;
        rpc: string;
        contracts: {
            CNS_REGISTRY: string;
            REVERSE_REGISTRAR: string;
            BASE_REGISTRAR: string;
            NAME_WRAPPER: string;
            WEB3_CONTROLLER: string;
            REVERSE_RECORDS: string;
            UTIL: string;
            MULTICALL: string;
        };
    };
    readonly conflux: TypeConflux;
    readonly contracts: Contracts;
    static supportMethods: string[];
    static utils: {
        namehash: typeof namehash;
        dnsNameNotationDecode: typeof dnsNameNotationDecode;
        labelhash: typeof labelhash;
    };
    constructor(config?: Config);
    /**
     * @example:
     * coreidutils.multicall([
     *   {
     *     method: 'ownerOf',
     *     args: ['666666.web3']
     *   },
     *   {
     *     method: 'address',
     *     args: ['666666.web3']
     *   },
     * ])
     */
    multicall(calls: Array<{
        method: typeof SUPPORT_METHODS[number];
        args: Array<Args>;
    }>): Promise<any>;
    private ownerOf_params;
    private ownerOf_return;
    ownerOf(name: Name): Promise<any>;
    private getData_params;
    private getData_return;
    private getData;
    private userDomains_params;
    private userDomains_return;
    userDomains(addr: Address): Promise<any>;
    private address_params;
    private address_return;
    address(name: Name): Promise<any>;
    private nameExpires_params;
    private nameExpires_return;
    nameExpires(name: Name): Promise<any>;
    private name_params;
    private name_return;
    name(addr: Address): Promise<any>;
    private names_params;
    private names_return;
    names(addrs: Address[]): Promise<any>;
    private status_params;
    private status_return;
    status(name: Name): Promise<any>;
    private parent_params;
    private parent_return;
    parent(name: Name): Promise<any>;
    private registrant_params;
    private registrant_return;
    registrant(name: Name): Promise<any>;
    private controller_params;
    private controller_return;
    controller(name: Name): Promise<any>;
}
