import { Logger } from '@streamr/utils';
import { LogStoreMessageStream } from '../../LogStoreMessageStream';
import { NodeManager } from '../../registry/NodeManager';
import { SystemMessageObservable } from '../SystemMessageObservable';
import { QueryInputPayload } from './types';
export type VerificationOptions = {
    timeout?: number;
};
/**
 * This function orchestrates the process of validating network responses against expected results.
 *
 * 1. **Message Retrieval**: The function starts by retrieving relevant system messages to this query indefinetely.
 * 2. **Collection Completion Check**: During retrieval, the function checks if the collection is complete.
 * 3. **Storage Matrix Creation**: If the collection is complete, the function converts the responses into a structured storage matrix.
 * 4. **Matrix Consistency Check**: The function then checks if all nodes agree on the storage matrix.
 * 5. **Response Verification**: Finally, the function verifies if all the messages from the HTTP response are present in the storage matrix.
 *
 * If all these steps are completed successfully within a certain timeout period, the function returns true, indicating that the network responses are valid.
 * If any of these steps are not completed within the timeout period, an error is thrown, indicating that the network verification has timed out.
 */
export declare const validateWithNetworkResponses: ({ queryInput, queryUrl, logger, nodeManager, systemMessages$, responseStream, verificationOptions, }: {
    queryInput: QueryInputPayload;
    logger: Logger;
    queryUrl: string;
    nodeManager: NodeManager;
    responseStream: LogStoreMessageStream;
    systemMessages$: SystemMessageObservable;
    verificationOptions?: VerificationOptions | undefined;
}) => Promise<true>;
