import React from 'react';
import type { Streamable, Tab } from '@kui-shell/core';
export interface StreamingProps {
    tab: Tab;
}
export interface StreamingState {
    execUUID: string;
    nStreamingOutputs: number;
}
export default abstract class StreamingConsumer<P extends StreamingProps = StreamingProps, S extends StreamingState = StreamingState> extends React.PureComponent<P, S> {
    protected readonly nope: () => void;
    private _streamingOutput;
    private _streamingConsumer;
    protected static initStreamingState(execUUID: string): StreamingState;
    protected hasStreamingOutput(): boolean;
    /** Accept one part of streaming output */
    protected streamingConsumer(part: Streamable): Promise<void>;
    /** Render the streaming output */
    protected streamingOutput(): JSX.Element | JSX.Element[];
    private clearPriorStreamingOutput;
    /** Wrap the execution of the given `cmdline` with handling of streaming output */
    protected execWithStream(cmdline: string): Promise<import("@kui-shell/core").KResponse<any>>;
}
