export declare enum AddressType {
    REGULAR = "regular",
    SYSTEM_CONTRACT = "system_contract",
    TOKEN_CONTRACT = "token_contract",
    SPECIAL = "special"
}
export interface RegisteredAddressInfo {
    address: string;
    name: string;
    type: AddressType;
    metadata?: Record<string, any>;
}
/**
 *
 * @param {string} address
 * @param {string} name
 * @param {AddressType} type
 * @param {Record<string, any>} metadata
 */
export declare function registerAddress(address: string, name: string, type?: AddressType, metadata?: Record<string, any>): void;
/**
 *
 * @param {string} address
 * @param {string} name
 * @param {Record<string, any>} metadata
 */
export declare function registerSystemContract(address: string, name: string, metadata?: Record<string, any>): void;
/**
 *
 * @param {string} address
 * @param {string} name
 * @param {Record<string, any>} metadata
 */
export declare function registerTokenContract(address: string, name: string, metadata?: Record<string, any>): void;
/**
 *
 * @param {Array} addresses
 */
export declare function registerAddresses(addresses: Array<{
    address: string;
    name: string;
    type?: AddressType;
    metadata?: Record<string, any>;
}>): void;
/**
 *
 * @param {string} address
 * @returns {boolean}
 */
export declare function unregisterAddress(address: string): boolean;
/**
 *
 * @param {string} address
 * @returns {RegisteredAddressInfo | null}
 */
export declare function getAddressInfo(address: string): RegisteredAddressInfo | null;
/**
 *
 * @param {string} address
 * @returns {boolean}
 */
export declare function isRegisteredAddress(address: string): boolean;
/**
 *
 * @param {string} address
 * @returns {boolean}
 */
export declare function isSystemContract(address: string): boolean;
/**
 *
 * @param {string} address
 * @returns {boolean}
 */
export declare function isTokenContract(address: string): boolean;
/**
 *
 * @param {string} address
 * @returns {string | null}
 */
export declare function getAddressName(address: string): string | null;
/**
 *
 * @param {AddressType} type
 * @returns {Record<string, string>}
 */
export declare function getAllRegisteredAddresses(type?: AddressType): Record<string, string>;
