import { RawRType } from '../../model/type';
export declare const RootId = 0;
/**
 * Entry type - shared between CSV and JSON entries.
 * These include position, token, and text.
 */
interface Entry extends Record<string, unknown> {
    readonly line1: number;
    readonly col1: number;
    readonly line2: number;
    readonly col2: number;
    readonly token: string;
    readonly text: string;
}
/**
 * CsvEntry type - mapping of ParsedDataRow to a JS object structure.
 * Contains construction information - whether we deal with a terminal, IDs, and children.
 */
export interface CsvEntry extends Entry {
    readonly id: number;
    readonly parent: number;
    readonly terminal: boolean;
    children?: CsvEntry[];
}
/**
 * Type-safe object structure that we work with during normalization.
 * Has Children (empty list indicates no children).
 */
export interface JsonEntry extends Entry {
    readonly children: JsonEntry[];
}
/**
 * Named JSON entries - these also have a RawRType assigned to them.
 */
export interface NamedJsonEntry {
    name: RawRType;
    content: JsonEntry;
}
/**
 * Takes the raw {@link RShell} output and extracts the csv information contained
 */
export declare function prepareParsedData(data: string): CsvEntry[];
/**
 * Takes the CSV-Entries and maps them to the old json format for compatibility.
 */
export declare function convertPreparedParsedData(roots: readonly CsvEntry[]): JsonEntry;
export {};
