import { Highlighter, HighlightResult, CodeblockContext, FlexiWriter } from '../type';
import { HighlightConfig } from './config';
export declare class HighlightResultImpl implements HighlightResult {
    private wrappedContent;
    private innerContent;
    constructor(wrappedContent: string, innerContent: string);
    wrapped(): string;
    inner(): string;
}
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;
}
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;
}
export declare function createDefaultHighlighter(config?: Partial<HighlightConfig>): DefaultHighlighter;
export declare function createExternalHighlighter(highlightFn: (code: string, lang: string) => Promise<string>, config?: Partial<HighlightConfig>): ExternalHighlighter;
