/** * Basic scalar types */ export declare type Scalar = string | null | undefined | boolean | number; /** * Skip scalar slug type */ export interface SkipScalar { } export declare const SKIP_SCALAR: SkipScalar; /** * Referenced values indexed by order of occurence */ export interface OrderedIndex { strings: string[]; integers: number[]; floats: number[]; dates: string[]; lpDates: string[]; } /** * Target type differentiators */ export declare enum TargetType { ARRAY = "ARRAY", OBJECT = "OBJECT", SCALAR = "SCALAR", TEMPLATE_OBJECT = "TEMPLATE_OBJECT", TEMPLATE_OBJECT_PROPERTIES = "TEMPLATE_OBJECT_PROPERTIES", TEMPLATE_OBJECT_ELEMENTS = "TEMPLATE_OBJECT_ELEMENTS", } /** * A current output target of specified type */ export declare type Target = ScalarTarget | ArrayTarget | ObjectTarget | TemplateObjectTarget | TemplateObjectPropertiesTarget | TemplateObjectElementsTarget; /** * Basic output targets */ export interface BaseTarget { type: T; value: any; } export interface ScalarTarget extends BaseTarget { value: any; } export interface ArrayTarget extends BaseTarget { value: any[]; } export interface ObjectTarget extends BaseTarget { key?: any; } /** * Template object output targets */ export interface TemplateObjectTarget extends BaseTarget { value: void; paths: string[][]; level: number; currentRoute: string[]; currentToken?: string; currentTokens: string[]; parentTarget: ArrayTarget | ObjectTarget; } export interface TemplateObjectIntermediateTarget extends BaseTarget { paths: string[][]; currentObject: any; currentPathIndex: number; expectedPaths: number; } export interface TemplateObjectPropertiesTarget extends TemplateObjectIntermediateTarget { value: any; } export interface TemplateObjectElementsTarget extends TemplateObjectIntermediateTarget { value: any[]; } /** * Decompression cursor state */ export declare type Cursor = { index: number; rootTarget: ScalarTarget; stack: Target[]; pointer: number; currentTarget: Target; drain: boolean; };