import { type NamespaceName } from '../types/namespace/namespace-name.js';
import { type PodReference } from '../integration/kube/resources/pod/pod-reference.js';
import { type SoloLogger } from './logging/solo-logger.js';
import { type K8Factory } from '../integration/kube/k8-factory.js';
/**
 * Class to manage network nodes
 */
export declare class NetworkNodes {
    private readonly logger?;
    private readonly k8Factory?;
    constructor(logger?: SoloLogger, k8Factory?: K8Factory);
    /**
     * Download logs files from all network pods and save to local solo log directory
     * @param namespace - the namespace of the network
     * @param [contexts]
     * @param [baseDirectory] - optional base directory to save logs, defaults to SOLO_LOGS_DIR
     * @param [excludeSensitiveData] - when true, omit TLS certificates, private keys, and data/keys from the archive
     * @returns a promise that resolves when the logs are downloaded
     */
    getLogs(namespace: NamespaceName, contexts?: string[], baseDirectory?: string, excludeSensitiveData?: boolean): Promise<void[]>;
    private getLog;
    /**
     * Download state files from a pod
     * @param namespace - the namespace of the network
     * @param nodeAlias - the pod name
     * @param [context]
     * @param [baseDirectory] - optional base directory to save state files, defaults to SOLO_LOGS_DIR
     * @returns a promise that resolves when the state files are downloaded
     */
    getStatesFromPod(namespace: NamespaceName, nodeAlias: string, context?: string, baseDirectory?: string): Promise<void[]>;
    private getState;
    getNetworkNodePodStatus(podReference: PodReference, context?: string): Promise<string>;
}
