import { NullNode, NumberNode, StringNode, ArrayNode, ObjectNode, BooleanNode } from "./json-parser.ts"; type BreakResult = { null: { type: "null"; broken: string; node: NullNode; }; boolean: { type: "boolean"; broken: string; node: BooleanNode; }; number: { type: "number"; broken: string; node: NumberNode; }; string: { type: "string"; broken: string; node: StringNode; }; array: { type: "array"; broken: { commaCuts: Set; commaDupes: Set; openCut: boolean; closeCut: boolean; }; node: ArrayNode; }; object: { type: "object"; broken: { colonCuts: Set; colonDupes: Set; commaCuts: Set; commaDupes: Set; openCut: boolean; closeCut: boolean; }; node: ObjectNode; }; }; export type BreakNode = BreakResult[K]; export declare const nullCut: (prev: { type: "null"; broken: string; node: NullNode; }) => { broken: string; type: "null"; node: NullNode; } | null; export declare const nullAdd: (prev: { type: "null"; broken: string; node: NullNode; }) => { broken: string; type: "null"; node: NullNode; } | null; export declare const boolCut: (prev: { type: "boolean"; broken: string; node: BooleanNode; }) => { broken: string; type: "boolean"; node: BooleanNode; } | null; export declare const boolAdd: (prev: { type: "boolean"; broken: string; node: BooleanNode; }) => { broken: string; type: "boolean"; node: BooleanNode; } | null; export declare const numberDot: (prev: { type: "number"; broken: string; node: NumberNode; }) => { broken: string; type: "number"; node: NumberNode; } | null; export declare const strUnescape: (prev: { type: "string"; broken: string; node: StringNode; }) => { broken: string; type: "string"; node: StringNode; } | null; export declare const strRemoveQuote: (prev: { type: "string"; broken: string; node: StringNode; }) => { broken: string; type: "string"; node: StringNode; } | null; export declare const strEscapeQuote: (prev: { type: "string"; broken: string; node: StringNode; }) => { broken: string; type: "string"; node: StringNode; } | null; export declare const strPrefixQuote: (prev: { type: "string"; broken: string; node: StringNode; }) => { broken: string; type: "string"; node: StringNode; } | null; export declare const strPostfixQuote: (prev: { type: "string"; broken: string; node: StringNode; }) => { broken: string; type: "string"; node: StringNode; } | null; type HasCommaPos = { commaPositions: number[]; }; type HasCommaBreak = { node: HasCommaPos; broken: { commaCuts: Set; commaDupes: Set; }; }; export declare function cutComma

(prev: P): P | null; export declare function dupeComma

(prev: P): P | null; type HasCutBreak = { broken: { closeCut: boolean; openCut: boolean; }; }; export declare function cutClose

(prev: P): P | null; export declare function cutOpen

(prev: P): P | null; export declare const cutColon: (prev: { type: "object"; broken: { colonCuts: Set; colonDupes: Set; commaCuts: Set; commaDupes: Set; openCut: boolean; closeCut: boolean; }; node: ObjectNode; }) => { broken: { colonCuts: Set; colonDupes: Set; commaCuts: Set; commaDupes: Set; openCut: boolean; closeCut: boolean; }; type: "object"; node: ObjectNode; } | null; export declare const dupeColon: (prev: { type: "object"; broken: { colonCuts: Set; colonDupes: Set; commaCuts: Set; commaDupes: Set; openCut: boolean; closeCut: boolean; }; node: ObjectNode; }) => { broken: { colonDupes: Set; colonCuts: Set; commaCuts: Set; commaDupes: Set; openCut: boolean; closeCut: boolean; }; type: "object"; node: ObjectNode; } | null; export {};