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, type NodeAlias } from '../../types/aliases.js';
import { GenesisNetworkRosterEntryDataWrapper } from './genesis-network-roster-entry-data-wrapper.js';
import { type AccountManager } from '../account-manager.js';
import { type ConsensusNode } from '../model/consensus-node.js';
import { type NodeServiceMapping } from '../../types/mappings/node-service-mapping.js';
/**
 * Used to construct the nodes data and convert them to JSON
 */
export declare class GenesisNetworkDataConstructor implements ToJSON {
    private readonly consensusNodes;
    private readonly keyManager;
    private readonly accountManager;
    private readonly keysDirectory;
    networkNodeServiceMap: NodeServiceMapping;
    adminPublicKeyMap: Map<NodeAlias, string>;
    domainNamesMapping?: Record<NodeAlias, string>;
    readonly nodes: Record<NodeAlias, GenesisNetworkNodeDataWrapper>;
    readonly rosters: Record<NodeAlias, GenesisNetworkRosterEntryDataWrapper>;
    private readonly initializationPromise;
    private constructor();
    static initialize(consensusNodes: ConsensusNode[], keyManager: KeyManager, accountManager: AccountManager, keysDirectory: string, networkNodeServiceMap: NodeServiceMapping, adminPublicKeys: string[], domainNamesMapping?: Record<NodeAlias, string>): Promise<GenesisNetworkDataConstructor>;
    /**
     * Loads the gossipCaCertificate and grpcCertificateHash
     */
    private load;
    toJSON(): JsonString;
}
