import * as React from 'react';
import * as GQL from '../backend/graphqlschema';
interface Props {
    /**
     * A CSS class name to add to this component's element.
     */
    className?: string;
    /**
     * The code string (or array of lines) to display.
     */
    value: string | string[];
    /**
     * The highlights for the lines.
     */
    highlights?: GQL.IHighlight[];
    /**
     * A list of classes to apply to 1-indexed line numbers.
     */
    lineClasses?: {
        line: number;
        className: string;
        url?: string;
    }[];
    /**
     * Called when the mousedown event is triggered on the element.
     */
    onMouseDown?: () => void;
}
interface DecoratedLine {
    value: string;
    highlights?: GQL.IHighlight[];
    classNames?: string[];
    url?: string;
}
interface State {
    visible: boolean;
    lines: DecoratedLine[];
}
/**
 * A simple component for displaying lines of text, with optional
 * highlighted ranges (not syntax highlighting, only e.g. query match
 * highlighting).
 */
export declare class DecoratedTextLines extends React.PureComponent<Props, State> {
    private tableContainerElement;
    constructor(props: Props);
    componentDidMount(): void;
    componentWillReceiveProps(nextProps: Props): void;
    componentDidUpdate(prevProps: Props, prevState: State): void;
    private updateHighlights;
    private getStateForProps;
    render(): JSX.Element | null;
    onChangeVisibility: (isVisible: boolean) => void;
    private setTableContainerElement;
}
export {};
//# sourceMappingURL=DecoratedTextLines.d.ts.map