import { TypeImplementation } from "./types.js"; import { Reader } from "./reader.js"; import { Writer } from "./writer.js"; type TI = TypeImplementation; interface GraphPathSegment { format: TI; reader: Reader; writer: Writer; } type PathKey = string; type GraphPath = Array; export declare function makePathKey(path: GraphPath): PathKey; export declare class FormatGraph { private readerGraph; private writerGraph; constructor(); registerReader(reader: Reader): void; registerWriter(writer: Writer): void; findAllPaths(reader: Reader, writer: Writer, shortcuts: boolean | undefined): Array; findBestPath(reader: Reader, writer: Writer, shortcut: boolean | undefined): GraphPath; clone(): FormatGraph; } export declare function registerReader(reader: Reader): void; export declare function registerWriter(writer: Writer): void; export interface ConversionOptions { shortcut?: boolean; } export declare class ConversionContext { private reader; private writer; private shortcut; private graph; constructor(reader: Reader, writer: Writer, opts?: ConversionOptions); getPath(): GraphPath; } export {};