/**
 * @file CommonMark Tab 展开工具
 * @module transformer/utils/tabs
 *
 * 行首 tab 按 4 列制表位展开；行内 tab 保留原样。
 * 用于列表、引用块、缩进代码块等块级语法的缩进计算。
 */
/** 缩进代码块 / 块结构分界（CommonMark 规范） */
export declare const CODE_INDENT = 4;
/**
 * 计算字符串在 index 处的视觉列位置。
 *
 * @param {string} str
 * @param {number} [index=str.length]
 * @returns {number}
 */
export declare function visualColumn(str: any, index?: any): number;
/**
 * 返回视觉列达到 targetCol 时的字符索引。
 *
 * @param {string} str
 * @param {number} targetCol
 * @returns {number}
 */
export declare function findIndexAtColumn(str: any, targetCol: any): any;
/**
 * 行首空白（空格/tab）的视觉列宽。
 *
 * @param {string} line
 * @returns {number}
 */
export declare function getIndent(line: string): number;
/**
 * 仅展开行首连续空白中的 tab，保留正文内 tab。
 *
 * @param {string} line
 * @returns {string}
 */
export declare function expandLinePrefixTabs(line: any): string;
/**
 * 判断是否为缩进代码块行（缩进 ≥ 4 列）。
 *
 * @param {string} line
 * @returns {boolean}
 */
export declare function isIndentedCodeLine(line: string): boolean;
/**
 * 去掉行首指定列数的视觉缩进。
 *
 * @param {string} line
 * @param {number} [spaces=CODE_INDENT]
 * @returns {string}
 */
export declare function stripVisualIndent(line: string, spaces?: number): string;
/**
 * 缩进代码块内容：展开行首 tab 后去掉一层 4 列缩进（8 列时保留 2 列）。
 *
 * @param {string} text
 * @returns {string}
 */
export declare function stripCodeContent(text: any): string;
/**
 * 对齐 commonmark.js block_quote 起始：去掉 `>` 及可选分隔空白，返回展开后的剩余部分。
 *
 * @param {string} line
 * @returns {string}
 */
export declare function stripBlockquoteMarker(line: any): any;
/**
 * 列表项 marker 行内容区 tab 展开（对齐 blockquote 的 partial-tab 规则）。
 *
 * @param {string} line
 * @param {number} contentOffset
 * @returns {string}
 */
export declare function expandListItemContent(line: any, contentOffset: any): string;
/**
 * 解析列表标记行（对齐 commonmark.js parseListMarker）。
 *
 * @param {string} line
 * @param {Object} [options={}]
 * @param {boolean} [options.allowIndented=false]
 * @returns {null | {
 *   markerColumn: number,
 *   contentStartCol: number,
 *   contentOffset: number,
 *   content: string,
 *   ordered: boolean,
 *   bulletChar: string|null,
 *   start: number|null,
 *   delimiter: string|null
 * }}
 */
export declare function parseListMarkerLine(line: any, { allowIndented }?: {
    allowIndented?: boolean | undefined;
}): {
    markerColumn: number;
    contentStartCol: any;
    contentOffset: any;
    content: any;
    ordered: boolean;
    bulletChar: null;
    start: number | null;
    delimiter: null;
} | null;
interface ListMarkerLike {
    ordered?: boolean;
    isOrdered?: boolean;
    bulletChar?: string | null;
    delimiter?: string | null;
}
/**
 * 判断两个列表 marker 是否属于同一列表类型。
 */
export declare function listsMatch(a: ListMarkerLike | null, b: ListMarkerLike | null): boolean;
export {};
//# sourceMappingURL=tabs.d.ts.map