export type ASTNodeType = 'object' | 'array' | 'string' | 'number' | 'boolean' | 'null'; export type ASTNode = { type: ASTNodeType; start: number; end: number; length: number; value: any; }; export type ObjectNode = ASTNode & { type: 'object'; value: Record; colonPositions: number[]; commaPositions: number[]; children: Array<[JSONASTNode, JSONASTNode]>; }; export type ArrayNode = ASTNode & { type: 'array'; value: any[]; commaPositions: number[]; children: JSONASTNode[]; }; export type StringNode = ASTNode & { type: 'string'; value: string; }; export type NumberNode = ASTNode & { type: 'number'; value: number; }; export type BooleanNode = ASTNode & { type: 'boolean'; value: boolean; }; export type NullNode = ASTNode & { type: 'null'; value: null; }; export type JSONASTNode = ObjectNode | ArrayNode | StringNode | NumberNode | BooleanNode | NullNode; export declare class JSONFuzzerParser { private input; private position; private nodes; constructor(input: string); parse(): JSONASTNode[]; private parseValue; private parseObject; private parseArray; private parseString; private parseNumber; private parseBoolean; private parseNull; private skipWhitespace; } export declare function parseJson(jsonString: string): JSONASTNode[];