import { CommonTokenStream } from 'antlr4ts';
import { AbstractParseTreeVisitor } from 'antlr4ts/tree';
import { FormattingOptions } from 'vscode-languageserver';
import { TextEdit } from 'vscode-languageserver-textdocument';
import { AlterFunctionContext, AnalyzeContext, ArithmeticBinaryContext, ArithmeticUnaryContext, BeginStatementSetContext, CaseEndContext, CharsetLiteralContext, ColumnAssignmentContext, ColumnAssignmentsContext, ColumnDefinitionContext, ColumnsContext, ColumnsWithoutParenthesisContext, CommaTableContext, ComparisonContext, CreateFunctionContext, CreateMaterializedTableContext, CreateTableContext, CreateViewContext, CtesContext, DefineValuesContext, DereferenceContext, DistributedByContext, ElseExprContext, ExecuteStatementSetContext, ExistsContext, ExpressionsContext, FromTableContext, FunctionCallContext, GroupByContext, GroupItemsContext, HavingContext, InsertContext, InsertMultipleContext, IntoBucketsContext, JsonArrayAggFunctionContext, JsonArrayFunctionContext, JsonExistsFunctionContext, JsonObjectAggFunctionContext, JsonObjectFunctionContext, JsonQueryFunctionContext, JsonValueFunctionContext, LogicalBinaryContext, LogicalNotContext, MapQueryContext, MapTableContext, MatchRecognizeContext, ParenthesisGroupItemsContext, ParenthesisQueryContext, PartitionedByContext, PrimaryExprContext, ProjectItemContext, ProjectItemsContext, QueryContext, RenameToContext, RowTypeContext, SetValuesContext, SqlTypeNameContext, StarContext, StatementContext, StatementEndContext, TableConstraintContext, TableLateralContext, TableReferenceContext, TableSourceContext, ThenExprContext, ValueAssignmentContext, ValueAssignmentsContext, WatermarkDefinitionContext, WhenExprContext, WhereContext, WindowSelectContext, WindowSpecContext, WithItemContext, WithValuesContext } from '../lib/FlinkSQLParser';
import { FlinkSQLParserVisitor } from '../lib/FlinkSQLParserVisitor';
export declare class SpaceReplacerFormatVisitor extends AbstractParseTreeVisitor<void> implements FlinkSQLParserVisitor<void> {
    private tokens;
    private config;
    textEdits: TextEdit[];
    private indentNumber;
    private indentString;
    private readonly newline;
    private readonly maxParenthesisLength;
    private readonly newlineRegex;
    constructor(tokens: CommonTokenStream, config: FormattingOptions);
    defaultResult(): void;
    private get indent();
    private get newlineIndent();
    private addIndent;
    private minusIndent;
    private updateBeforeNextTokenByContext;
    private updateAfterPreviousTokenByContext;
    private updateBeforeNextTokenByNode;
    private updateAfterPreviousTokenByNode;
    private alignColumnDefinitions;
    private handleAlignNextToken;
    visitStatement(ctx: StatementContext): void;
    visitStatementEnd(ctx: StatementEndContext): void;
    visitBeginStatementSet(ctx: BeginStatementSetContext): void;
    visitExecuteStatementSet(ctx: ExecuteStatementSetContext): void;
    visitCreateFunction(ctx: CreateFunctionContext): void;
    visitCreateView(ctx: CreateViewContext): void;
    visitCreateTable(ctx: CreateTableContext): void;
    visitCreateMaterializedTable(ctx: CreateMaterializedTableContext): void;
    visitDefineValues(ctx: DefineValuesContext): void;
    visitColumnDefinition(ctx: ColumnDefinitionContext): void;
    visitWatermarkDefinition(ctx: WatermarkDefinitionContext): void;
    visitTableConstraint(ctx: TableConstraintContext): void;
    visitWithValues(ctx: WithValuesContext): void;
    visitPartitionedBy(ctx: PartitionedByContext): void;
    visitDistributedBy(ctx: DistributedByContext): void;
    visitIntoBuckets(ctx: IntoBucketsContext): void;
    visitInsert(ctx: InsertContext): void;
    visitInsertMultiple(ctx: InsertMultipleContext): void;
    visitColumns(ctx: ColumnsContext): void;
    visitValueAssignments(ctx: ValueAssignmentsContext): void;
    visitValueAssignment(ctx: ValueAssignmentContext): void;
    visitColumnAssignments(ctx: ColumnAssignmentsContext): void;
    visitColumnAssignment(ctx: ColumnAssignmentContext): void;
    visitColumnsWithoutParenthesis(ctx: ColumnsWithoutParenthesisContext): void;
    visitAnalyze(ctx: AnalyzeContext): void;
    visitAlterFunction(ctx: AlterFunctionContext): void;
    visitRenameTo(ctx: RenameToContext): void;
    visitSetValues(ctx: SetValuesContext): void;
    visitQuery(ctx: QueryContext): void;
    visitParenthesisQuery(ctx: ParenthesisQueryContext): void;
    visitMapQuery(ctx: MapQueryContext): void;
    visitCtes(ctx: CtesContext): void;
    visitWithItem(ctx: WithItemContext): void;
    visitProjectItems(ctx: ProjectItemsContext): void;
    visitProjectItem(ctx: ProjectItemContext): void;
    visitFromTable(ctx: FromTableContext): void;
    visitWhere(ctx: WhereContext): void;
    visitGroupBy(ctx: GroupByContext): void;
    visitHaving(ctx: HavingContext): void;
    visitWindowSelect(ctx: WindowSelectContext): void;
    visitCommaTable(ctx: CommaTableContext): void;
    visitMapTable(ctx: MapTableContext): void;
    visitGroupItems(ctx: GroupItemsContext): void;
    visitParenthesisGroupItems(ctx: ParenthesisGroupItemsContext): void;
    visitTableReference(ctx: TableReferenceContext): void;
    visitTableSource(ctx: TableSourceContext): void;
    visitTableLateral(ctx: TableLateralContext): void;
    visitSqlTypeName(ctx: SqlTypeNameContext): void;
    visitRowType(ctx: RowTypeContext): void;
    visitFunctionCall(ctx: FunctionCallContext): void;
    visitJsonExistsFunction(ctx: JsonExistsFunctionContext): void;
    visitJsonValueFunction(ctx: JsonValueFunctionContext): void;
    visitJsonQueryFunction(ctx: JsonQueryFunctionContext): void;
    visitJsonObjectFunction(ctx: JsonObjectFunctionContext): void;
    visitJsonObjectAggFunction(ctx: JsonObjectAggFunctionContext): void;
    visitJsonArrayFunction(ctx: JsonArrayFunctionContext): void;
    visitJsonArrayAggFunction(ctx: JsonArrayAggFunctionContext): void;
    visitExpressions(ctx: ExpressionsContext): void;
    visitPrimaryExpr(ctx: PrimaryExprContext): void;
    visitArithmeticUnary(ctx: ArithmeticUnaryContext): void;
    visitArithmeticBinary(ctx: ArithmeticBinaryContext): void;
    visitComparison(ctx: ComparisonContext): void;
    visitWhenExpr(ctx: WhenExprContext): void;
    visitThenExpr(ctx: ThenExprContext): void;
    visitElseExpr(ctx: ElseExprContext): void;
    visitCaseEnd(ctx: CaseEndContext): void;
    visitLogicalNot(ctx: LogicalNotContext): void;
    visitExists(ctx: ExistsContext): void;
    visitLogicalBinary(ctx: LogicalBinaryContext): void;
    visitWindowSpec(ctx: WindowSpecContext): void;
    visitMatchRecognize(ctx: MatchRecognizeContext): void;
    visitCharsetLiteral(ctx: CharsetLiteralContext): void;
    visitDereference(ctx: DereferenceContext): void;
    visitStar(ctx: StarContext): void;
}
