/**
 * @file 媒体语法（行内 video/audio + 块级 video/audio/iframe）
 * @module transformer/extends/inline/media
 *
 * 语法：
 * - 行内：`!video[alt](url)` / `!audio[alt](url)`，可选 `{poster=url}`
 * - 块级：独立行的 `!video[...]` / `!audio[...]` / `!iframe[...]`
 */
import { BaseInlineParser } from "../../../transformer/core/ParserBase.js";
import { BaseBlockParser } from "../../../transformer/core/ParserBase.js";
import { MarkdownNode } from "../../../transformer/core/MarkdownNode.js";
import { InlineParseContext } from "../../../transformer/core/context/InlineParseContext";
import { BlockParseContext } from "../../../transformer/core/context/BlockParseContext";
import { RenderContext } from "../../../transformer/core/context/RenderContext";
/** 行内 video / audio 解析器 */
declare class MediaInlineParser extends BaseInlineParser {
    constructor();
    canOpenAt(src: string, index: number, _ctx: InlineParseContext): boolean;
    /** @inheritdoc */
    parse(src: string, index: number, ctx: InlineParseContext): {
        node: MarkdownNode;
        nextIndex: number;
    } | null;
    /** @inheritdoc */
    render(node: MarkdownNode, _ctx: RenderContext): string;
}
/** 块级 video / audio 解析器 */
declare class MediaBlockParser extends BaseBlockParser {
    constructor();
    canOpenAt(lines: string[], index: number, _ctx: BlockParseContext): boolean;
    /** @inheritdoc */
    parse(lines: string[], index: number, ctx: BlockParseContext): {
        node: MarkdownNode;
        nextIndex: number;
    } | null;
    /** @inheritdoc */
    render(node: MarkdownNode, ctx: RenderContext): string;
}
/** 块级 iframe 解析器 */
declare class IframeBlockParser extends BaseBlockParser {
    constructor();
    canOpenAt(lines: string[], index: number, _ctx: BlockParseContext): boolean;
    /** @inheritdoc */
    parse(lines: string[], index: number, ctx: BlockParseContext): {
        node: MarkdownNode;
        nextIndex: number;
    } | null;
    /** @inheritdoc */
    render(node: MarkdownNode, ctx: RenderContext): string;
}
export declare const mediaInlineParser: MediaInlineParser;
export declare const mediaBlockParser: MediaBlockParser;
export declare const iframeBlockParser: IframeBlockParser;
export default mediaInlineParser;
//# sourceMappingURL=media.d.ts.map