import detectIndent from 'detect-indent';
import { BladeFormatterOption, CLIOption, FormatterOption } from './main';
import * as util from './util';
export default class Formatter {
    argumentCheck: any;
    bladeBraces: any;
    bladeComments: any;
    bladeDirectives: any;
    htmlAttributes: Array<string>;
    currentIndentLevel: number;
    diffs: any;
    indentCharacter: any;
    indentSize: any;
    inlineDirectives: any;
    conditions: any;
    inlinePhpDirectives: any;
    isInsideCommentBlock: any;
    oniguruma: any;
    options: FormatterOption & CLIOption;
    rawBladeBraces: any;
    ignoredLines: any;
    curlyBracesWithJSs: any;
    rawBlocks: any;
    rawPhpTags: any;
    rawPropsBlocks: any;
    result: any;
    nonnativeScripts: Array<string>;
    scripts: any;
    xData: Array<string>;
    xInit: Array<string>;
    xSlot: Array<string>;
    htmlTags: Array<string>;
    shouldBeIndent: any;
    stack: any;
    templatingStrings: any;
    stringLiteralInPhp: Array<string>;
    shorthandBindings: Array<string>;
    componentAttributes: Array<string>;
    customDirectives: Array<string>;
    directivesInScript: Array<string>;
    unbalancedDirectives: Array<string>;
    escapedBladeDirectives: Array<string>;
    phpComments: Array<string>;
    vsctm: any;
    wrapAttributes: any;
    wrapLineLength: any;
    defaultPhpFormatOption: util.FormatPhpOption;
    endOfLine: string;
    bladeDirectivesInStyle: Array<string>;
    constructor(options: BladeFormatterOption);
    formatContent(content: any): Promise<any>;
    formatAsHtml(data: any): Promise<any>;
    sortTailwindcssClasses(content: any): Promise<any>;
    preserveIgnoredLines(content: any): Promise<any>;
    preserveCurlyBraceForJS(content: any): Promise<any>;
    preservePhpBlock(content: any): Promise<any>;
    preservePropsBlock(content: any): Promise<any>;
    preserveRawPhpBlock(content: any): Promise<any>;
    preserveHtmlTags(content: string): Promise<any>;
    /**
     * preserve custom directives
     * @param content
     * @returns
     */
    preserveCustomDirective(content: string): string;
    preserveInlineDirective(content: string): string;
    preserveInlinePhpDirective(content: any): Promise<any>;
    preserveBladeDirectivesInScripts(content: any): any;
    preserveBladeDirectivesInStyles(content: string): any;
    /**
     *
     * @param content string between <script>~</script>
     * @returns string
     */
    preserveCustomDirectiveInScript(content: string): string;
    /**
     * Recursively insert line break before and after directives
     * @param content string
     * @returns
     */
    breakLineBeforeAndAfterDirective(content: string): string;
    preserveEscapedBladeDirective(content: string): Promise<any>;
    preserveXslot(content: string): Promise<any>;
    preserveBladeComment(content: any): Promise<any>;
    preservePhpComment(content: string): any;
    preserveBladeBrace(content: any): Promise<any>;
    preserveRawBladeBrace(content: any): Promise<any>;
    preserveConditions(content: any): Promise<any>;
    /**
     * preserve unbalanced directive like @hasSection
     */
    preserveUnbalancedDirective(content: any): string;
    preserveRawPhpTags(content: any): Promise<any>;
    preserveNonnativeScripts(content: string): Promise<any>;
    preserveScripts(content: any): Promise<any>;
    preserveHtmlAttributes(content: any): Promise<any>;
    sortHtmlAttributes(content: string): Promise<string>;
    preserveShorthandBinding(content: string): Promise<any>;
    preserveComponentAttribute(content: string): Promise<any>;
    formatXData(content: any): Promise<any>;
    formatXInit(content: any): Promise<any>;
    preserveStringLiteralInPhp(content: any): any;
    storeIgnoredLines(value: any): any;
    storeCurlyBraceForJS(value: any): any;
    storeRawBlock(value: any): any;
    storeInlineDirective(value: any): any;
    storeConditions(value: any): any;
    storeInlinePhpDirective(value: any): any;
    storeRawPropsBlock(value: any): any;
    storeBladeDirective(value: any): any;
    storeBladeDirectiveInStyle(value: string): any;
    storeEscapedBladeDirective(value: string): any;
    storeXslot(value: string): any;
    storeBladeComment(value: any): any;
    storePhpComment(value: string): any;
    storeHtmlTag(value: string): any;
    storeInlineCustomDirective(value: string): any;
    storeBeginCustomDirective(value: string): any;
    storeElseCustomDirective(value: string): any;
    storeEndCustomDirective(value: string): any;
    storeUnbalancedDirective(value: string): any;
    storeBladeBrace(value: any, length: any): any;
    storeRawBladeBrace(value: any): any;
    storeRawPhpTags(value: any): any;
    storeNonnativeScripts(value: string): any;
    storeScripts(value: any): any;
    storeHtmlAttribute(value: string): any;
    storeShorthandBinding(value: any): any;
    storeComponentAttribute(value: any): any;
    storeXData(value: any): any;
    storeXInit(value: any): any;
    storeTemplatingString(value: any): any;
    storeStringLiteralInPhp(value: any): any;
    storeBladeDirectiveInScript(value: string): any;
    getIgnoredLinePlaceholder(replace: any): any;
    getCurlyBraceForJSPlaceholder(replace: any): any;
    getRawPlaceholder(replace: any): any;
    getInlinePlaceholder(replace: any, length?: number): any;
    getConditionPlaceholder(replace: any): any;
    getInlinePhpPlaceholder(replace: any): any;
    getRawPropsPlaceholder(replace: any): any;
    getBladeDirectivePlaceholder(replace: any): any;
    getBladeDirectiveInStylePlaceholder(replace: string): any;
    getEscapedBladeDirectivePlaceholder(replace: string): any;
    getXslotPlaceholder(replace: string): any;
    getBladeCommentPlaceholder(replace: any): any;
    getPhpCommentPlaceholder(replace: string): any;
    getBladeBracePlaceholder(replace: any, length?: number): any;
    getRawBladeBracePlaceholder(replace: any): any;
    getRawPhpTagPlaceholder(replace: any): any;
    getNonnativeScriptPlaceholder(replace: string): any;
    getScriptPlaceholder(replace: any): any;
    getHtmlTagPlaceholder(replace: string): any;
    getInlineCustomDirectivePlaceholder(replace: string): any;
    getBeginCustomDirectivePlaceholder(replace: string): any;
    getElseCustomDirectivePlaceholder(replace: string): any;
    getEndCustomDirectivePlaceholder(replace: string): any;
    getUnbalancedDirectivePlaceholder(replace: string): any;
    getHtmlAttributePlaceholder(replace: string, length: any): any;
    getShorthandBindingPlaceholder(replace: string, length?: any): any;
    getComponentAttributePlaceholder(replace: string): any;
    getXInitPlaceholder(replace: any): any;
    getPlaceholder(attribute: string, replace: any, length?: any): any;
    getXDataPlaceholder(replace: any): any;
    getTemplatingStringPlaceholder(replace: any): any;
    getStringLiteralInPhpPlaceholder(replace: any): any;
    getBladeDirectiveInScriptPlaceholder(replace: any): any;
    restoreIgnoredLines(content: any): any;
    restoreCurlyBraceForJS(content: any): any;
    restorePhpBlock(content: any): Promise<any>;
    restoreRawPhpBlock(content: any): Promise<any>;
    restoreRawPropsBlock(content: any): Promise<any>;
    isInline(content: any): boolean;
    isMultilineStatement(rawBlock: any): Promise<boolean>;
    indentRawBlock(indent: detectIndent.Indent, content: any): any;
    indentBladeDirectiveBlock(indent: detectIndent.Indent, content: any): any;
    indentScriptBlock(indent: detectIndent.Indent, content: any): any;
    indentRawPhpBlock(indent: detectIndent.Indent, content: any): any;
    indentComponentAttribute(prefix: string, content: string): any;
    indentPhpComment(indent: detectIndent.Indent, content: string): any;
    restoreBladeDirectivesInStyles(content: string): any;
    restoreBladeDirectivesInScripts(content: any): Promise<any>;
    formatPreservedBladeDirectives(directives: any): Promise<any[]>;
    restoreBladeComment(content: any): Promise<any>;
    restoreXslot(content: string): any;
    restorePhpComment(content: string): any;
    restoreEscapedBladeDirective(content: any): Promise<any>;
    restoreBladeBrace(content: any): Promise<any>;
    restoreRawBladeBrace(content: any): Promise<any>;
    restoreInlineDirective(content: any): Promise<any>;
    restoreConditions(content: any): Promise<any>;
    restoreUnbalancedDirective(content: any): Promise<any>;
    restoreInlinePhpDirective(content: any): Promise<any>;
    restoreRawPhpTags(content: any): Promise<any>;
    restoreNonnativeScripts(content: string): any;
    restoreScripts(content: any): Promise<any>;
    restoreCustomDirective(content: string): Promise<any>;
    restoreInlineCustomDirective(content: string): Promise<any>;
    restoreBeginCustomDirective(content: string): Promise<any>;
    restoreElseCustomDirective(content: string): Promise<any>;
    restoreEndCustomDirective(content: string): Promise<any>;
    restoreHtmlTags(content: any): Promise<any>;
    restoreHtmlAttributes(content: string): any;
    restoreXData(content: any): any;
    restoreXInit(content: any): any;
    restoreTemplatingString(content: any): any;
    restoreStringLiteralInPhp(content: any): any;
    restoreComponentAttribute(content: string): Promise<any>;
    restoreShorthandBinding(content: any): any;
    formatAsBlade(content: any): Promise<any>;
    formatTokenizedLines(splittedLines: any, tokenizedLines: any): Promise<any>;
    processLine(tokenizeLineResult: any, originalLine: any): Promise<void>;
    processKeyword(token: string): Promise<void>;
    processToken(tokenStruct: any, token: string): Promise<void>;
    processTokenizeResult(tokenizeLineResult: any, originalLine: any): Promise<void>;
    insertFormattedLineToResult(originalLine: any): void;
    incrementIndentLevel(level?: number): void;
    decrementIndentLevel(level?: number): void;
    formatExpressionInsideBladeDirective(matchedExpression: string, indent: detectIndent.Indent, wrapLength?: number | undefined): Promise<any>;
    formatJS(jsCode: string): string;
}
