import { GenesisNetworkNodeDataWrapper } from './genesis_network_node_data_wrapper.js';
import type { KeyManager } from '../key_manager.js';
import type { ToJSON } from '../../types/index.js';
import type { JsonString, NodeAlias, NodeAliases } from '../../types/aliases.js';
import { GenesisNetworkRosterEntryDataWrapper } from './genesis_network_roster_entry_data_wrapper.js';
import type { NetworkNodeServices } from '../network_node_services.js';
/**
 * Used to construct the nodes data and convert them to JSON
 */
export declare class GenesisNetworkDataConstructor implements ToJSON {
    private readonly nodeAliases;
    private readonly keyManager;
    private readonly keysDir;
    private readonly networkNodeServiceMap;
    readonly nodes: Record<NodeAlias, GenesisNetworkNodeDataWrapper>;
    readonly rosters: Record<NodeAlias, GenesisNetworkRosterEntryDataWrapper>;
    private constructor();
    static initialize(nodeAliases: NodeAliases, keyManager: KeyManager, keysDir: string, networkNodeServiceMap: Map<string, NetworkNodeServices>): Promise<GenesisNetworkDataConstructor>;
    /**
     * Loads the gossipCaCertificate and grpcCertificateHash
     */
    private load;
    toJSON(): JsonString;
}
