/**
 * @file 链接 destination / title 解析
 * @module transformer/utils/linkDestination
 *
 * CommonMark / GFM 行内链接与引用定义的 href、title 解析与规范化。
 */
import { type SkipInlineWhitespaceOptions } from "../../transformer/utils/normalize.js";
/** 行内链接 destination / title 之间的空白（可含单个换行）。 */
export declare const INLINE_LINK_WS: SkipInlineWhitespaceOptions;
/** GFM destination / title 中可反斜杠转义的 ASCII 标点 */
export declare function isAsciiPunct(ch: string): boolean;
/**
 * 解析 link destination 后去掉反斜杠转义。
 */
export declare function unescapeHref(href: string): string;
/**
 * 保留已有 %XX 序列，对其余字符做 URI 编码。
 */
export declare function normalizeLinkDestination(href: string): string;
/**
 * 规范化 link title（解码实体并去掉转义）。
 */
export declare function normalizeLinkTitle(title: string): string;
/**
 * 解析 `<...>` destination；闭合 `>` 必须未转义。
 */
export declare function findUnescapedAngleClose(src: string, openIndex: number): number;
/**
 * 解析尖括号包裹的 link destination。
 */
export declare function parseAngleDestination(src: string, start: number): {
    href: string;
    next: number;
} | null;
/**
 * 解析非尖括号 destination；转义括号不参与平衡计数。
 */
export declare function parsePlainDestination(src: string, start: number): {
    href: string;
    next: number;
};
export interface ParsedLinkTitle {
    title: string;
    next: number;
    closed: boolean;
}
/**
 * 从 opener 字符起解析 link title（`"`、`'` 或 `(`）。
 */
export declare function parseLinkTitle(src: string, start: number): ParsedLinkTitle | null;
export interface ParsedInlineLink {
    href: string;
    title: string;
    next: number;
}
/** angle destination 内因换行导致解析失败。 */
export declare function isAngleDestinationBrokenByNewline(src: string, openIndex: number): boolean;
/**
 * 行内链接 `( <...含换行...> )` 解析失败时，扫描整段字面量的闭合位置。
 *
 * @param src 源文本
 * @param parenStart `(` 的位置
 */
export declare function scanFailedAngleInlineLinkEnd(src: string, parenStart: number): number;
/**
 * 解析 `(href "title")` 形式的行内链接 destination 与可选 title。
 *
 * @param src 源文本
 * @param start `(` 的位置
 */
export declare function parseInlineLinkParen(src: string, start: number): ParsedInlineLink | null;
//# sourceMappingURL=linkDestination.d.ts.map