/**
 * Thread role information extracted from documentation
 */
export interface ThreadRole {
    thread: string;
    responsibility: string;
    traceTag?: string;
}
/**
 * Extracted teaching content from a pipeline document
 */
export interface PipelineTeachingContent {
    /** Document title (first # heading) */
    title: string;
    /** Summary paragraph (first content paragraph after title) */
    summary: string;
    /** All Mermaid diagram code blocks */
    mermaidBlocks: string[];
    /** Thread roles extracted from tables */
    threadRoles: ThreadRole[];
    /** Key slice names mentioned in the document */
    keySlices: string[];
    /** Path to the source document */
    docPath: string;
}
export declare class PipelineDocService {
    private docsDir;
    private cache;
    constructor(docsDir?: string);
    /**
     * Get teaching content for a pipeline type
     */
    getTeachingContent(pipelineId: string): PipelineTeachingContent | null;
    /**
     * Parse a markdown document and extract teaching content
     */
    private parseDocument;
    /**
     * Extract the document title (first # heading)
     */
    private extractTitle;
    /**
     * Extract the summary (first descriptive paragraph after title)
     *
     * Strategy: Skip NOTE/IMPORTANT/WARNING blocks (usually version info),
     * and extract the first real paragraph that describes the pipeline.
     */
    private extractSummary;
    /**
     * Extract all Mermaid code blocks
     */
    private extractMermaidBlocks;
    /**
     * Extract thread roles from markdown tables
     *
     * Looks for tables with columns like:
     * | 线程名称 | 关键职责 | 常见 Trace 标签 |
     * | Thread | Responsibility | Trace Tag |
     */
    private extractThreadRoles;
    /**
     * Extract key slice names from the document
     *
     * Looks for:
     * - Slice names in backticks: `DrawFrame`
     * - Trace tags: *Trace*: `sliceName`
     */
    private extractKeySlices;
    /**
     * Get all available pipeline types
     */
    getAvailablePipelines(): string[];
    /**
     * Check if a document exists for a pipeline type
     */
    hasDocument(pipelineId: string): boolean;
    /**
     * Clear the cache
     */
    clearCache(): void;
}
export declare function getPipelineDocService(): PipelineDocService;
//# sourceMappingURL=pipelineDocService.d.ts.map