import type { ATN, TerminalNode, TokenStream } from 'antlr4';
import type FilterQueryListener from './FilterQueryListener';
import type FilterQueryVisitor from './FilterQueryVisitor';
import { DFA, FailedPredicateException, Parser, ParserRuleContext } from 'antlr4';
export default class FilterQueryParser extends Parser {
    static readonly LPAREN = 1;
    static readonly RPAREN = 2;
    static readonly LBRACK = 3;
    static readonly RBRACK = 4;
    static readonly COMMA = 5;
    static readonly EQUALS = 6;
    static readonly NOT_EQUALS = 7;
    static readonly NEQ = 8;
    static readonly LT = 9;
    static readonly LE = 10;
    static readonly GT = 11;
    static readonly GE = 12;
    static readonly LIKE = 13;
    static readonly ILIKE = 14;
    static readonly BETWEEN = 15;
    static readonly EXISTS = 16;
    static readonly REGEXP = 17;
    static readonly CONTAINS = 18;
    static readonly IN = 19;
    static readonly NOT = 20;
    static readonly AND = 21;
    static readonly OR = 22;
    static readonly HASTOKEN = 23;
    static readonly HAS = 24;
    static readonly HASANY = 25;
    static readonly HASALL = 26;
    static readonly BOOL = 27;
    static readonly NUMBER = 28;
    static readonly QUOTED_TEXT = 29;
    static readonly KEY = 30;
    static readonly WS = 31;
    static readonly FREETEXT = 32;
    static readonly EOF: number;
    static readonly RULE_query = 0;
    static readonly RULE_expression = 1;
    static readonly RULE_orExpression = 2;
    static readonly RULE_andExpression = 3;
    static readonly RULE_unaryExpression = 4;
    static readonly RULE_primary = 5;
    static readonly RULE_comparison = 6;
    static readonly RULE_inClause = 7;
    static readonly RULE_notInClause = 8;
    static readonly RULE_valueList = 9;
    static readonly RULE_fullText = 10;
    static readonly RULE_functionCall = 11;
    static readonly RULE_functionParamList = 12;
    static readonly RULE_functionParam = 13;
    static readonly RULE_array = 14;
    static readonly RULE_value = 15;
    static readonly RULE_key = 16;
    static readonly literalNames: (string | null)[];
    static readonly symbolicNames: (string | null)[];
    static readonly ruleNames: string[];
    get grammarFileName(): string;
    get literalNames(): (string | null)[];
    get symbolicNames(): (string | null)[];
    get ruleNames(): string[];
    get serializedATN(): number[];
    protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException;
    constructor(input: TokenStream);
    query(): QueryContext;
    expression(): ExpressionContext;
    orExpression(): OrExpressionContext;
    andExpression(): AndExpressionContext;
    unaryExpression(): UnaryExpressionContext;
    primary(): PrimaryContext;
    comparison(): ComparisonContext;
    inClause(): InClauseContext;
    notInClause(): NotInClauseContext;
    valueList(): ValueListContext;
    fullText(): FullTextContext;
    functionCall(): FunctionCallContext;
    functionParamList(): FunctionParamListContext;
    functionParam(): FunctionParamContext;
    array(): ArrayContext;
    value(): ValueContext;
    key(): KeyContext;
    static readonly _serializedATN: number[];
    private static __ATN;
    static get _ATN(): ATN;
    static DecisionsToDFA: DFA[];
}
export declare class QueryContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    expression(): ExpressionContext;
    EOF(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class ExpressionContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    orExpression(): OrExpressionContext;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class OrExpressionContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    andExpression_list(): AndExpressionContext[];
    andExpression(i: number): AndExpressionContext;
    OR_list(): TerminalNode[];
    OR(i: number): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class AndExpressionContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    unaryExpression_list(): UnaryExpressionContext[];
    unaryExpression(i: number): UnaryExpressionContext;
    AND_list(): TerminalNode[];
    AND(i: number): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class UnaryExpressionContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    primary(): PrimaryContext;
    NOT(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class PrimaryContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    LPAREN(): TerminalNode;
    orExpression(): OrExpressionContext;
    RPAREN(): TerminalNode;
    comparison(): ComparisonContext;
    functionCall(): FunctionCallContext;
    fullText(): FullTextContext;
    key(): KeyContext;
    value(): ValueContext;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class ComparisonContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    key(): KeyContext;
    EQUALS(): TerminalNode;
    value_list(): ValueContext[];
    value(i: number): ValueContext;
    NOT_EQUALS(): TerminalNode;
    NEQ(): TerminalNode;
    LT(): TerminalNode;
    LE(): TerminalNode;
    GT(): TerminalNode;
    GE(): TerminalNode;
    LIKE(): TerminalNode;
    ILIKE(): TerminalNode;
    NOT(): TerminalNode;
    BETWEEN(): TerminalNode;
    AND(): TerminalNode;
    inClause(): InClauseContext;
    notInClause(): NotInClauseContext;
    EXISTS(): TerminalNode;
    REGEXP(): TerminalNode;
    CONTAINS(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class InClauseContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    IN(): TerminalNode;
    LPAREN(): TerminalNode;
    valueList(): ValueListContext;
    RPAREN(): TerminalNode;
    LBRACK(): TerminalNode;
    RBRACK(): TerminalNode;
    value(): ValueContext;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class NotInClauseContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    NOT(): TerminalNode;
    IN(): TerminalNode;
    LPAREN(): TerminalNode;
    valueList(): ValueListContext;
    RPAREN(): TerminalNode;
    LBRACK(): TerminalNode;
    RBRACK(): TerminalNode;
    value(): ValueContext;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class ValueListContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    value_list(): ValueContext[];
    value(i: number): ValueContext;
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class FullTextContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    QUOTED_TEXT(): TerminalNode;
    FREETEXT(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class FunctionCallContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    LPAREN(): TerminalNode;
    functionParamList(): FunctionParamListContext;
    RPAREN(): TerminalNode;
    HASTOKEN(): TerminalNode;
    HAS(): TerminalNode;
    HASANY(): TerminalNode;
    HASALL(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class FunctionParamListContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    functionParam_list(): FunctionParamContext[];
    functionParam(i: number): FunctionParamContext;
    COMMA_list(): TerminalNode[];
    COMMA(i: number): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class FunctionParamContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    key(): KeyContext;
    value(): ValueContext;
    array(): ArrayContext;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class ArrayContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    LBRACK(): TerminalNode;
    valueList(): ValueListContext;
    RBRACK(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class ValueContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    QUOTED_TEXT(): TerminalNode;
    NUMBER(): TerminalNode;
    BOOL(): TerminalNode;
    KEY(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
export declare class KeyContext extends ParserRuleContext {
    constructor(parser?: FilterQueryParser, parent?: ParserRuleContext, invokingState?: number);
    KEY(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: FilterQueryListener): void;
    exitRule(listener: FilterQueryListener): void;
    accept<Result>(visitor: FilterQueryVisitor<Result>): Result;
}
