import { BaseController, BaseConfig, BaseState } from '../BaseController'; /** * @type ContactEntry * * ContactEntry representation * @property address - Hex address of a recipient account * @property name - Nickname associated with this address * @property importTime - Data time when an account as created/imported */ export interface ContactEntry { address: string; name: string; importTime?: number; } /** * @type AddressBookEntry * * AddressBookEntry representation * @property address - Hex address of a recipient account * @property name - Nickname associated with this address * @property chainId - Chain id identifies the current chain * @property memo - User's note about address * @property isEns - is the entry an ENS name */ export interface AddressBookEntry { address: string; name: string; chainId: string; memo: string; isEns: boolean; } /** * @type AddressBookState * * Address book controller state * @property addressBook - Array of contact entry objects */ export interface AddressBookState extends BaseState { addressBook: { [chainId: string]: { [address: string]: AddressBookEntry; }; }; } /** * Controller that manages a list of recipient addresses associated with nicknames. */ export declare class AddressBookController extends BaseController { /** * Name of this controller used during composition */ name: string; /** * Creates an AddressBookController 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 contract entries. */ clear(): void; /** * Remove a contract entry by address. * * @param chainId - Chain id identifies the current chain. * @param address - Recipient address to delete. * @returns Whether the entry was deleted. */ delete(chainId: string, address: string): boolean; /** * Add or update a contact entry by address. * * @param address - Recipient address to add or update. * @param name - Nickname to associate with this address. * @param chainId - Chain id identifies the current chain. * @param memo - User's note about address. * @returns Boolean indicating if the address was successfully set. */ set(address: string, name: string, chainId?: string, memo?: string): boolean; } export default AddressBookController;