import { QueryPropagate, QueryRequest, QueryResponse } from '@logsn/protocol';
import { BehaviorSubject, Observable } from 'rxjs';
import { SystemMessageValue } from '../SystemMessageObservable';
import { QueryInputPayload } from './types';
/**
 * This function retrieves the filtered system messages.
 * The filtering is necessary because we only want to process the relevant messages and ignore the rest.
 */
export declare function retrieveFilteredSystemMessages(systemMessages$: Observable<SystemMessageValue>, queryNodeAddress$: Observable<string>, httpResponseRequestId$: Observable<string | null>, queryInput: QueryInputPayload): {
    request$: Observable<SystemMessageValue<QueryRequest>>;
    responses$: BehaviorSubject<SystemMessageValue<QueryResponse>[]>;
    propagates$: BehaviorSubject<SystemMessageValue<QueryPropagate>[]>;
    startCollectingSystemMessages$: Observable<string | SystemMessageValue<QueryResponse> | SystemMessageValue<QueryPropagate> | SystemMessageValue<QueryRequest> | null>;
};
