/**
 * @license
 * Copyright 2025-2026 Open Home Foundation
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * Format a number or bigint as a hex string with 0x prefix.
 * Ensures even number of digits with a minimum of 4 digits.
 *
 * Examples:
 *   0 -> "0x0000"
 *   255 -> "0x00FF"
 *   65535 -> "0xFFFF"
 *   65536 -> "0x010000"
 */
export declare function formatHex(value: number | bigint): string;
/**
 * Format a node address in Matter format: @fabricIndex:nodeIdHex
 * For test nodes (where fabric index is unknown), uses "?" as the fabric index.
 *
 * Examples:
 *   (1, 2) -> "@1:2"
 *   (1, 255) -> "@1:ff"
 *   (2, 65535) -> "@2:ffff"
 *   (undefined, 2) -> "@?:2"
 */
export declare function formatNodeAddress(fabricIndex: number | undefined, nodeId: number | bigint): string;
/**
 * Get the effective fabric index for formatting a node address.
 * Returns undefined for test nodes or when fabric index is not available,
 * which will result in "?" being displayed.
 *
 * @param serverFabricIndex - The fabric_index from client.serverInfo
 * @param isTestNode - Whether this is a test node (from isTestNodeId())
 */
export declare function getEffectiveFabricIndex(serverFabricIndex: number | undefined, isTestNode: boolean): number | undefined;
/**
 * Format a node address, handling string node IDs.
 * Useful when node IDs come from various sources (string keys, numbers, bigints).
 *
 * @param fabricIndex - The fabric index (or undefined for "?")
 * @param nodeId - The node ID as string, number, or bigint
 * @returns Formatted address like "@1:7b" or empty string if nodeId is invalid
 */
export declare function formatNodeAddressFromAny(fabricIndex: number | undefined, nodeId: number | bigint | string): string;
//# sourceMappingURL=format_hex.d.ts.map