import { type Address } from "viem";
import { providers } from "ethers";
export declare const REGISTRY_CONTRACT_ADDRESS: {
    1: string;
    11155111: string;
};
export interface RegistryConfig {
    provider: providers.Web3Provider;
}
/**
 * Registry provides access to the TinyCloud Registry contract for resolving
 * account addresses to their associated node identifiers.
 */
export declare class Registry {
    provider: providers.Web3Provider;
    /**
     * Creates a new instance of the Registry class.
     *
     * @param config - Configuration options for the Registry
     * @param config.rpcUrl - The RPC URL to connect to the blockchain
     * @param config.contractAddress - The address of the Registry contract
     */
    constructor(config: RegistryConfig);
    /**
     * Gets the node identifier associated with an account address.
     *
     * @param account - The account address to look up
     * @returns A Promise containing the node identifier string
     *
     * @example
     * ```ts
     * const registry = new Registry({
     *   rpcUrl: 'https://mainnet.base.org',
     *   contractAddress: '0x...'
     * });
     * const node = await registry.getNode('0x1234...');
     * console.log(node); // 'my-node-id'
     * ```
     */
    getNode(account: Address): Promise<string>;
    addressNode(): Promise<string>;
    /**
     * Checks if an account has a registered node.
     *
     * @param account - The account address to check
     * @returns A Promise containing a boolean indicating if the account has a node
     *
     * @example
     * ```ts
     * const hasNode = await registry.hasNode('0x1234...');
     * if (hasNode) {
     *   const node = await registry.getNode('0x1234...');
     * }
     * ```
     */
    hasNode(account: Address): Promise<boolean>;
}
export default Registry;
//# sourceMappingURL=Registry.d.ts.map