import { InjectionToken, Provider } from '@angular/core';
import { KbqCodeBlockFile } from './types';
import * as i0 from "@angular/core";
/**
 * Fallback language for code block if language is not supported/specified.
 *
 * List of supported languages:
 * @link https://highlightjs.readthedocs.io/en/stable/supported-languages.html
 */
export declare const KBQ_CODE_BLOCK_FALLBACK_FILE_LANGUAGE: InjectionToken<string>;
/** Utility provider for `KBQ_CODE_BLOCK_FALLBACK_FILE_LANGUAGE`. */
export declare const kbqCodeBlockFallbackFileLanguageProvider: (language: string) => Provider;
/** Directive which applies syntax highlighting to the code block content. */
export declare class KbqCodeBlockHighlight {
    private readonly nativeElement;
    private readonly document;
    private readonly renderer;
    private readonly domSanitizer;
    private readonly fallbackFileLanguage;
    private readonly window;
    /** The code file. */
    set file(file: KbqCodeBlockFile);
    /** The starting line number. */
    startFrom: number;
    /** Whether to display line numbers for single line code block. */
    singleLine: boolean;
    constructor();
    /**
     * Initialize the HighlightJS line numbers plugin. This method is called once when
     * the component is constructed.
     */
    private initLineNumbersPlugin;
    /**
     * This method is not intended for editing.
     * Changes may lead to unpredictable behavior.
     * Source code: https://github.com/wcoder/highlightjs-line-numbers.js/blob/v2.9.0/src/highlightjs-line-numbers.js
     */
    private highlightJSLineNumbersPlugin;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqCodeBlockHighlight, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqCodeBlockHighlight, "code[kbqCodeBlockHighlight]", never, { "file": { "alias": "file"; "required": true; }; "startFrom": { "alias": "startFrom"; "required": false; }; "singleLine": { "alias": "singleLine"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_startFrom: unknown;
    static ngAcceptInputType_singleLine: unknown;
}
