import { EthereumAddress } from '@streamr/utils';
import { Authentication } from '../Authentication';
import { StrictStreamrClientConfig } from '../Config';
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 nodeRegistryContractsReadonly;
    private readonly contractFactory;
    private readonly config;
    private readonly authentication;
    constructor(contractFactory: ContractFactory, config: Pick<StrictStreamrClientConfig, 'contracts'>, authentication: Authentication);
    private connectToContract;
    setStorageNodeMetadata(metadata: StorageNodeMetadata | undefined): Promise<void>;
    getStorageNodeMetadata(nodeAddress: EthereumAddress): Promise<StorageNodeMetadata>;
}
