import { NodeStructOutput } from '@river-build/generated/dev/typings/INodeRegistry';
import { RiverChainConfig } from '../IStaticContractsInfo';
import { INodeRegistryShim } from './INodeRegistryShim';
import { ethers } from 'ethers';
import { IStreamRegistryShim } from './IStreamRegistryShim';
import { IOperatorRegistryShim } from './IOperatorRegistryShim';
import { StreamStructOutput } from '@river-build/generated/dev/typings/IStreamRegistry';
interface RiverNodesMap {
    [nodeAddress: string]: NodeStructOutput;
}
interface NodeUrls {
    url: string;
}
export declare class RiverRegistry {
    readonly config: RiverChainConfig;
    readonly provider: ethers.providers.Provider;
    readonly nodeRegistry: INodeRegistryShim;
    readonly streamRegistry: IStreamRegistryShim;
    readonly operatorRegistry: IOperatorRegistryShim;
    readonly riverNodesMap: RiverNodesMap;
    constructor(config: RiverChainConfig, provider: ethers.providers.Provider);
    getAllNodes(nodeStatus?: number): Promise<RiverNodesMap | undefined>;
    getAllNodeUrls(nodeStatus?: number): Promise<NodeUrls[] | undefined>;
    getOperationalNodeUrls(): Promise<string>;
    getStreamCount(): Promise<ethers.BigNumber>;
    getStream(streamAddress: Uint8Array): Promise<StreamStructOutput>;
    streamExists(streamAddress: Uint8Array): Promise<boolean>;
    private getStreamCountOnNode;
    getStreamCountsOnNodes(nodeAddresses: string[]): Promise<ethers.BigNumber[]>;
}
export {};
//# sourceMappingURL=RiverRegistry.d.ts.map