import { EthereumAddress } from '@streamr/utils';
import { Identity } from '../identity/Identity';
import { StrictStreamrClientConfig } from '../Config';
import { RpcProviderSource } from '../RpcProviderSource';
import { ContractFactory } from './ContractFactory';
export interface StorageNodeMetadata {
    urls: string[];
}
/**
 * Store a mapping of storage node addresses <-> storage node URLs
 */
export declare class StorageNodeRegistry {
    private nodeRegistryContract?;
    private readonly nodeRegistryContractReadonly;
    private readonly contractFactory;
    private readonly rpcProviderSource;
    private readonly config;
    private readonly identity;
    constructor(contractFactory: ContractFactory, rpcProviderSource: RpcProviderSource, config: Pick<StrictStreamrClientConfig, 'contracts' | '_timeouts'>, identity: Identity);
    private connectToContract;
    setStorageNodeMetadata(metadata: StorageNodeMetadata | undefined): Promise<void>;
    getStorageNodeMetadata(nodeAddress: EthereumAddress): Promise<StorageNodeMetadata>;
}
