/**
 * BlockOpen / blockClose are needed to prevent an `else` or `elif` that belongs
 * to a `for` / `macro` / etc. block from being misclassified as an `else`
 * belonging to an enclosing `if` block.
 */
export type BranchConfig = {
    start: RegExp;
    continue: RegExp;
    end: RegExp;
    blockOpen?: RegExp;
    blockClose?: RegExp;
};
/** @import {SyntaxConfig} from "@html-eslint/template-syntax-parser" */
/**
 * Branch configuration for a template block delimiter.
 *
 * The template-syntax-parser ignores unknown properties on SyntaxConfigItem, so
 * adding `branch` here is fully backwards-compatible.
 *
 * Patterns are matched against the raw content between the opening and closing
 * delimiters of each template token, e.g. the content of `{% if foo %}` is " if
 * foo " (including surrounding whitespace).
 *
 * @typedef {{
 *   start: RegExp; // matches if-opening tokens  (e.g. " if cond ")
 *   continue: RegExp; // matches branch-separator tokens (elseif / else)
 *   end: RegExp; // matches if-closing tokens  (e.g. " endif ")
 *   blockOpen?: RegExp; // matches other block-openers (for, macro, …)
 *   blockClose?: RegExp; // matches the matching closers (endfor, …)
 * }} BranchConfig
 *   BlockOpen / blockClose are needed to prevent an `else` or `elif` that belongs
 *   to a `for` / `macro` / etc. block from being misclassified as an `else`
 *   belonging to an enclosing `if` block.
 */
/** @type {SyntaxConfig} */
export const HANDLEBAR: SyntaxConfig;
/**
 * Handlebars with conditional branch-awareness. Use this instead of HANDLEBAR
 * when you want duplicate nodes that appear in separate `{{#if}}` / `{{else}}`
 * branches to be silently ignored.
 *
 * Must be used as an array (SyntaxConfigItem[]) rather than the shorthand
 * Record form, because the Record form has no place to carry branch patterns.
 *
 * @type {{ open: string; close: string; branch: BranchConfig }[]}
 */
export const HANDLEBAR_EXTENDED: {
    open: string;
    close: string;
    branch: BranchConfig;
}[];
/**
 * @type {{
 *   open: string;
 *   close: string;
 *   isComment?: boolean;
 *   branch?: BranchConfig;
 * }[]}
 */
export const TWIG: {
    open: string;
    close: string;
    isComment?: boolean;
    branch?: BranchConfig;
}[];
/**
 * @type {{
 *   open: string;
 *   close: string;
 *   isComment?: boolean;
 *   branch?: BranchConfig;
 * }[]}
 */
export const NUNJUCKS: {
    open: string;
    close: string;
    isComment?: boolean;
    branch?: BranchConfig;
}[];
/** @type {SyntaxConfig} */
export const ERB: SyntaxConfig;
import type { SyntaxConfig } from "@html-eslint/template-syntax-parser";
//# sourceMappingURL=template-engine-syntax-preset.d.ts.map