export declare const CodePoint: { _0_: number, _1_: number, _9_: number, _a_: number, _f_: number, _A_: number, _F_: number, _openCurly_: number, _openSquare_: number, _closeCurly_: number, _closeSquare_: number, _quoteMark_: number, _plus_: number, _minus_: number, _space_: number, _newline_: number, _tab_: number, _return_: number, _backslash_: number, _slash_: number, _comma_: number, _colon_: number, _t_: number, _n_: number, _b_: number, _r_: number, _u_: number, _dot_: number, _e_: number, _E_: number, _l_: number, _s_: number, } export enum JsonFeedbackType { error = 'JsonFeedbackType.error', } export enum JsonErrorType { unexpected = 'JsonErrorType.unexpected', unexpectedEnd = 'JsonErrorType.unexpectedEnd', } export interface JsonErrorFeedback { type: JsonFeedbackType.error, message: string, } export interface JsonUnexpectedFeedback { type: JsonFeedbackType.error, errorType: JsonErrorType.unexpected, codePoint: number, context: string, expected: Array, } export interface JsonUnexpectedEndFeedback { type: JsonFeedbackType.error, errorType: JsonErrorType.unexpectedEnd, context?: string, expected?: Array, } export type JsonStandardFeedback = JsonErrorFeedback | JsonUnexpectedFeedback; export type JsonStandardEnd = JsonErrorFeedback | JsonUnexpectedEndFeedback; export declare const error: (message: string) => JsonErrorFeedback export declare const isError: (message: unknown) => boolean export declare const unexpected: (code: number, context: string, expected: Array) => JsonUnexpectedFeedback export declare const unexpectedEnd: (context?: string, expected?: Array) => JsonUnexpectedEndFeedback export declare const isZeroNine: (code: number) => boolean export declare const isOneNine: (code: number) => boolean export declare const isWhitespace: (code: number) => boolean export interface JsonLowBaseConfig { maxDepth: number, } export interface JsonLowConfig extends JsonLowBaseConfig { downstream?: DownstreamConfig, } export interface JsonLowBaseState { mode: string, parents: string[], isKey: boolean, hexIndex: number, } export interface JsonLowState extends JsonLowBaseState { downstream?: DownstreamState, } export interface JsonLowInitialState extends Partial, Partial { } export declare const JsonLow: ( next: JsonLowHandlers, initialState?: JsonLowInitialState, ) => { codePoint(codePoint: number): Feedback | JsonStandardFeedback | undefined, end(): End | JsonStandardEnd | undefined, depth(): number, state(): JsonLowState, config(): JsonLowConfig, } export type JsonLowHandlers = { openObject?: JsonLowHandler, openArray?: JsonLowHandler, openString?: JsonLowHandler, openNumber?: JsonLowHandler, openTrue?: JsonLowHandler, openFalse?: JsonLowHandler, openNull?: JsonLowHandler, closeObject?: JsonLowHandler, closeArray?: JsonLowHandler, closeString?: JsonLowHandler, // note: edge case with no codePoint or Feedback closeNumber?: () => void, closeTrue?: JsonLowHandler, closeFalse?: JsonLowHandler, closeNull?: JsonLowHandler, openKey?: JsonLowHandler, openHex?: JsonLowHandler, closeKey?: JsonLowHandler, closeHex?: JsonLowHandler, codePoint?: JsonLowHandler, escape?: JsonLowHandler, whitespace?: JsonLowHandler, comma?: JsonLowHandler, colon?: JsonLowHandler, state?: () => JsonLowState, config?: () => JsonLowConfig, end?: () => End, } export type JsonLowHandler = (codePoint: number) => Feedback