import { JavaScriptVisitor } from "../visitor";
import { J } from "../../java";
import { Cursor, Tree } from "../../tree";
import { TabsAndIndentsStyle } from "../style";
export declare class TabsAndIndentsVisitor
extends JavaScriptVisitor
{
private readonly tabsAndIndentsStyle;
private stopAfter?;
private readonly indentSize;
private readonly useTabCharacter;
constructor(tabsAndIndentsStyle: TabsAndIndentsStyle, stopAfter?: Tree | undefined);
private indentString;
protected preVisit(tree: J, _p: P): Promise;
private setupCursorMessagesForTree;
private getParentIndentContext;
private computeMyIndent;
private prefixContainsNewline;
private isJsxChildElement;
private computeIndentKind;
private isLambdaBodyInsideContainer;
postVisit(tree: J, _p: P): Promise;
private isInsideJsxTag;
private normalizeJsxTextContent;
private isLastChildOfJsxTag;
private normalizeBlockEnd;
visitContainer(container: J.Container, p: P): Promise>;
private preVisitContainer;
private postVisitContainer;
visitLeftPadded(left: J.LeftPadded, p: P): Promise | undefined>;
private preVisitLeftPadded;
private postVisitLeftPadded;
visitRightPadded(right: J.RightPadded, p: P): Promise | undefined>;
private preVisitRightPadded;
/**
* Check if an element is a spread - either a JS.Spread element
* or a PropertyAssignment wrapping a spread.
*/
private isSpreadElement;
visit(tree: Tree, p: P, parent?: Cursor): Promise;
private setupAncestorIndents;
private isActualJNode;
}
//# sourceMappingURL=tabs-and-indents-visitor.d.ts.map