import type { Socket } from './net';
import { DEFAULT_SLICING_PIPELINE } from '../../../core/steps/pipeline/default-pipelines';
import type { PipelineOutput } from '../../../core/steps/pipeline/pipeline';
import type { DeepPartial } from 'ts-essentials';
import type { KnownParser } from '../../../r-bridge/parser';
import type { FlowrConfigOptions } from '../../../config';
/**
 * Each connection handles a single client, answering to its requests.
 * There is no need to construct this class manually, {@link FlowRServer} will do it for you.
 */
export declare class FlowRServerConnection {
    private readonly socket;
    private readonly parser;
    private readonly name;
    private readonly logger;
    private readonly allowRSessionAccess;
    private readonly config;
    private readonly fileMap;
    constructor(socket: Socket, name: string, parser: KnownParser, allowRSessionAccess: boolean, config: FlowrConfigOptions);
    private currentMessageBuffer;
    private handleData;
    private handleFileAnalysisRequest;
    private sendFileAnalysisResponse;
    private createPipelineExecutorForRequest;
    private handleSliceRequest;
    private handleRepl;
    private handleLineageRequest;
    private handleQueryRequest;
}
export declare function sanitizeAnalysisResults(results: Partial<PipelineOutput<typeof DEFAULT_SLICING_PIPELINE>>): DeepPartial<PipelineOutput<typeof DEFAULT_SLICING_PIPELINE>>;
