import { BaseController, BaseConfig, BaseState } from '../BaseController'; /** * @type EnsEntry * * ENS entry representation * @property chainId - Id of the associated chain * @property ensName - The ENS name * @property address - Hex address with the ENS name, or null */ export interface EnsEntry { chainId: string; ensName: string; address: string | null; } /** * @type EnsState * * ENS controller state * @property ensEntries - Object of ENS entry objects */ export interface EnsState extends BaseState { ensEntries: { [chainId: string]: { [ensName: string]: EnsEntry; }; }; } /** * Controller that manages a list ENS names and their resolved addresses * by chainId. A null address indicates an unresolved ENS name. */ export declare class EnsController extends BaseController { /** * Name of this controller used during composition */ name: string; /** * Creates an EnsController instance. * * @param config - Initial options used to configure this controller. * @param state - Initial state to set on this controller. */ constructor(config?: Partial, state?: Partial); /** * Remove all chain Ids and ENS entries from state. */ clear(): void; /** * Delete an ENS entry. * * @param chainId - Parent chain of the ENS entry to delete. * @param ensName - Name of the ENS entry to delete. * @returns Boolean indicating if the entry was deleted. */ delete(chainId: string, ensName: string): boolean; /** * Retrieve a DNS entry. * * @param chainId - Parent chain of the ENS entry to retrieve. * @param ensName - Name of the ENS entry to retrieve. * @returns The EnsEntry or null if it does not exist. */ get(chainId: string, ensName: string): EnsEntry | null; /** * Add or update an ENS entry by chainId and ensName. * * A null address indicates that the ENS name does not resolve. * * @param chainId - Id of the associated chain. * @param ensName - The ENS name. * @param address - Associated address (or null) to add or update. * @returns Boolean indicating if the entry was set. */ set(chainId: string, ensName: string, address: string | null): boolean; } export default EnsController;