import * as chev from "chevrotain"; import { EveError } from "./errors"; export declare var Token: typeof chev.Token; export declare class DocContent extends Token { static PATTERN: RegExp; } export declare class Fence extends Token { static PATTERN: RegExp; static PUSH_MODE: string; } export declare class CloseFence extends Token { static PATTERN: RegExp; static POP_MODE: boolean; } export declare class CommentLine extends Token { static PATTERN: RegExp; label: string; static GROUP: string; } export declare class Equality extends Token { static PATTERN: RegExp; label: string; } export declare class Comparison extends Token { static PATTERN: RegExp; label: string; } export declare class AddInfix extends Token { static PATTERN: RegExp; label: string; } export declare class MultInfix extends Token { static PATTERN: RegExp; label: string; } export declare class Merge extends Token { static PATTERN: RegExp; label: string; } export declare class Set extends Token { static PATTERN: RegExp; label: string; } export declare class Mutate extends Token { static PATTERN: RegExp; label: string; } export declare class Dot extends Token { static PATTERN: RegExp; label: string; } export declare class Pipe extends Token { static PATTERN: RegExp; label: string; } export declare class Identifier extends Token { static PATTERN: RegExp; label: string; } export declare class FunctionIdentifier extends Token { static PATTERN: RegExp; label: string; } export declare class Keyword extends Token { static PATTERN: RegExp; static LONGER_ALT: typeof Identifier; } export declare class Lookup extends Keyword { static PATTERN: RegExp; label: string; } export declare class Action extends Keyword { static PATTERN: RegExp; label: string; } export declare class Search extends Keyword { static PATTERN: RegExp; label: string; } export declare class If extends Keyword { static PATTERN: RegExp; label: string; } export declare class Else extends Keyword { static PATTERN: RegExp; label: string; } export declare class Then extends Keyword { static PATTERN: RegExp; label: string; } export declare class Not extends Keyword { static PATTERN: RegExp; label: string; } export declare class Bool extends Keyword { static PATTERN: RegExp; label: string; } export declare class Num extends Token { static PATTERN: RegExp; label: string; } export declare class None extends Keyword { static PATTERN: RegExp; label: string; } export declare class Name extends Token { static PATTERN: RegExp; label: string; } export declare class Tag extends Token { static PATTERN: RegExp; label: string; } export declare class OpenBracket extends Token { static PATTERN: RegExp; label: string; } export declare class CloseBracket extends Token { static PATTERN: RegExp; label: string; } export declare class OpenParen extends Token { static PATTERN: RegExp; label: string; } export declare class CloseParen extends Token { static PATTERN: RegExp; label: string; } export declare class StringChars extends Token { static PATTERN: RegExp; label: string; } export declare class OpenString extends Token { static PATTERN: RegExp; static PUSH_MODE: string; label: string; } export declare class CloseString extends Token { static PATTERN: RegExp; static POP_MODE: boolean; label: string; } export declare class StringEmbedOpen extends Token { static PATTERN: RegExp; static PUSH_MODE: string; label: string; } export declare class StringEmbedClose extends Token { static PATTERN: RegExp; static POP_MODE: boolean; label: string; } export declare class WhiteSpace extends Token { static PATTERN: RegExp; static GROUP: string; } export type NodeDependent = chev.IToken | ParseNode; export interface ParseNode { type?: string; id?: string; startOffset?: number; endOffset?: number; from: NodeDependent[]; [property: string]: any; } export declare class ParseBlock { id: string; start: number; nodeId: number; variables: { [name: string]: ParseNode; }; equalities: any[]; scanLike: ParseNode[]; expressions: ParseNode[]; binds: ParseNode[]; commits: ParseNode[]; variableLookup: { [name: string]: ParseNode; }; links: string[]; tokens: chev.Token[]; searchScopes: string[]; parent: ParseBlock | undefined; constructor(id: string, variableLookup?: any); toVariable(name: string, generated?: boolean): { id: string | undefined; type: string; name: string; from: never[]; generated: boolean; }; addUsage(variable: any, usage: any): void; equality(a: any, b: any): void; commit(node: ParseNode): void; bind(node: ParseNode): void; expression(node: ParseNode): void; scan(node: ParseNode): void; makeNode(type: any, node: ParseNode): ParseNode; addSearchScopes(scopes: string[]): void; subBlock(): ParseBlock; } export declare class Parser extends chev.Parser { customErrors: any[]; block: ParseBlock; activeScopes: string[]; currentAction: string; doc: any; codeBlock: any; fencedBlock: any; section: any; searchSection: any; actionSection: any; value: any; bool: any; num: any; scopeDeclaration: any; name: any; statement: any; expression: any; attribute: any; attributeEquality: any; attributeComparison: any; attributeNot: any; attributeOperation: any; record: any; tag: any; functionRecord: any; notStatement: any; comparison: any; infix: any; attributeAccess: any; actionStatement: any; actionEqualityRecord: any; actionAttributeExpression: any; actionOperation: any; actionLookup: any; variable: any; recordOperation: any; ifExpression: any; ifBranch: any; elseIfBranch: any; elseBranch: any; multiplication: any; addition: any; infixValue: any; parenthesis: any; attributeMutator: any; singularAttribute: any; stringInterpolation: any; constructor(input: any); } export declare function nodeToBoundaries(node: any, offset?: number): any[]; export declare function parseBlock(block: any, blockId: string, offset?: number, spans?: any[], extraInfo?: any): { results: any; lex: any; errors: EveError[]; }; export declare function parseDoc(doc: string, docId?: string): { results: { blocks: any[]; text: string; spans: any[]; extraInfo: any; eavs: any[]; }; errors: EveError[][]; }; export declare function errorToFacts(eavs: any[], error: EveError, block: any): void; export declare function recordToFacts(eavs: any[], vars: any, scanLike: any): string; export declare function outputToFacts(eavs: any[], vars: any, scanLike: any, blockId: string): string; export declare function toFacts(eavs: any[], block: any): any[];