import { CommonToken, CommonTokenStream, ErrorListener as ANTLRErrorListener, Recognizer, TerminalNode, Token } from 'antlr4';
export declare class FormatterErrorsListener implements ANTLRErrorListener<CommonToken> {
    syntaxError<T extends Token>(_r: Recognizer<CommonToken>, offendingSymbol: T, line: number, column: number): void;
    reportAmbiguity(): void;
    reportAttemptingFullContext(): void;
    reportContextSensitivity(): void;
}
/**
 * The maximum column width for the formatter. Not a hard limit as overflow
 * is unavoidable in some cases, but we always prefer a solution that doesn't overflow.
 */
export declare const MAX_COL = 80;
export declare enum AlignIndentationOptions {
    Add = 1,
    Remove = -1,
    Maintain = 0
}
export interface BaseChunk {
    isCursor?: boolean;
    doubleBreak?: true;
    text: string;
    groupsStarting: number;
    groupsEnding: number;
    modifyIndentation: number;
    specialIndentation: number;
    alignIndentation: AlignIndentationOptions;
}
export interface RegularChunk extends BaseChunk {
    type: 'REGULAR';
    node?: TerminalNode;
    noSpace?: boolean;
    noBreak?: boolean;
    mustBreak?: boolean;
}
export interface CommentChunk extends BaseChunk {
    type: 'COMMENT';
    breakBefore: boolean;
}
export type Chunk = RegularChunk | CommentChunk;
export declare function wantsToBeUpperCase(node: TerminalNode): boolean;
export declare function wantsToBeConcatenated(node: TerminalNode): boolean;
export declare function isComment(token: Token): boolean;
export declare function getParseTreeAndTokens(query: string): {
    tree: import("../generated-parser/CypherCmdParser").StatementsOrCommandsContext;
    tokens: CommonTokenStream;
};
export declare function findTargetToken(tokens: Token[], cursorPosition: number): Token | false;
export declare function isCommentBreak(chunk: Chunk, nextChunk: Chunk): boolean;
