import { CandidatesCollection } from 'antlr4-c3';
import { CharStream, CommonTokenStream, Token } from 'antlr4ng';
import { ImpalaSqlLexer } from '../../lib/impala/ImpalaSqlLexer';
import { ImpalaSqlParser, ProgramContext } from '../../lib/impala/ImpalaSqlParser';
import { BasicSQL } from '../common/basicSQL';
import { CaretPosition, SemanticCollectOptions, Suggestions } from '../common/types';
import { ErrorListener } from '../common/parseErrorListener';
import { ImpalaEntityCollector } from './impalaEntityCollector';
import { ImpalaErrorListener } from './ImpalaErrorListener';
import { ImpalaSqlSplitListener } from './impalaSplitListener';
import { ImpalaSemanticContextCollector } from './impalaSemanticContextCollector';
export { ImpalaEntityCollector, ImpalaSqlSplitListener };
export declare class ImpalaSQL extends BasicSQL<ImpalaSqlLexer, ProgramContext, ImpalaSqlParser> {
    protected createLexerFromCharStream(charStreams: CharStream): ImpalaSqlLexer;
    protected createParserFromTokenStream(tokenStream: CommonTokenStream): ImpalaSqlParser;
    protected preferredRules: Set<number>;
    protected get splitListener(): ImpalaSqlSplitListener;
    protected createErrorListener(_errorListener: ErrorListener): ImpalaErrorListener;
    protected createEntityCollector(input: string, allTokens?: Token[], caretTokenIndex?: number): ImpalaEntityCollector;
    protected createSemanticContextCollector(input: string, caretPosition: CaretPosition, allTokens: Token[], options?: SemanticCollectOptions): ImpalaSemanticContextCollector;
    protected processCandidates(candidates: CandidatesCollection, allTokens: Token[], caretTokenIndex: number): Suggestions<Token>;
}
