import { Highlighter, HighlightResult, CodeblockContext, FlexiWriter } from '../type';
import { HighlightConfig } from './config';
/**
 * HighlightResultImpl implements HighlightResult
 */
export declare class HighlightResultImpl implements HighlightResult {
    private wrappedContent;
    private innerContent;
    constructor(wrappedContent: string, innerContent: string);
    wrapped(): string;
    inner(): string;
}
/**
 * Default highlighter using highlight.js or prism.js
 */
export declare class DefaultHighlighter implements Highlighter {
    private config;
    constructor(config: HighlightConfig);
    highlight(code: string, lang: string, opts?: any): Promise<string>;
    highlightCodeBlock(ctx: CodeblockContext, opts?: any): Promise<HighlightResult>;
    renderCodeblock(cctx: any, w: FlexiWriter, ctx: CodeblockContext): Promise<void>;
    isDefaultCodeBlockRenderer(): boolean;
    private escapeHTML;
    private addLineNumbers;
}
/**
 * External highlighter adapter - allows using external highlight libraries
 */
export declare class ExternalHighlighter implements Highlighter {
    private highlightFn;
    private config;
    constructor(highlightFn: (code: string, lang: string) => Promise<string>, config?: HighlightConfig);
    highlight(code: string, lang: string, opts?: any): Promise<string>;
    highlightCodeBlock(ctx: CodeblockContext, opts?: any): Promise<HighlightResult>;
    renderCodeblock(cctx: any, w: FlexiWriter, ctx: CodeblockContext): Promise<void>;
    isDefaultCodeBlockRenderer(): boolean;
}
/**
 * Factory function to create default highlighter
 */
export declare function createDefaultHighlighter(config?: Partial<HighlightConfig>): DefaultHighlighter;
/**
 * Factory function to create external highlighter
 */
export declare function createExternalHighlighter(highlightFn: (code: string, lang: string) => Promise<string>, config?: Partial<HighlightConfig>): ExternalHighlighter;
//# sourceMappingURL=highlight.d.ts.map