import * as i0 from '@angular/core';
import { AfterViewInit, OnDestroy, InjectionToken, EnvironmentProviders } from '@angular/core';
import { HLJSOptions } from 'highlight.js';
import * as i1 from '@angular/forms';

declare class HighlightJsDirective implements AfterViewInit, OnDestroy {
    private cog;
    readonly options: i0.InputSignal<Partial<HLJSOptions>>;
    readonly lang: i0.InputSignal<string>;
    readonly code: i0.ModelSignal<string | undefined>;
    readonly mode: i0.InputSignal<"default" | "simple">;
    protected codeEl?: HTMLElement;
    protected parentEl?: HTMLElement;
    private modelValue$?;
    private observer?;
    private el;
    private ngModel;
    private doc;
    private ngZone;
    private escapeHTML;
    private init;
    private destroy;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private initMutation;
    static ɵfac: i0.ɵɵFactoryDeclaration<HighlightJsDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<HighlightJsDirective, "[highlight-js]", ["highlightJs"], { "options": { "alias": "options"; "required": false; "isSignal": true; }; "lang": { "alias": "lang"; "required": false; "isSignal": true; }; "code": { "alias": "code"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "code": "codeChange"; }, never, never, true, never>;
}

declare class HighlightJsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<HighlightJsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<HighlightJsModule, never, [typeof i1.FormsModule, typeof HighlightJsDirective], [typeof HighlightJsDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<HighlightJsModule>;
}

interface HighlightJsConfig {
    /**
     * Specify rendering mode
     * - `default` Will render each `<pre><code>`
     * - `simple` Render all content according to `lang` language
     */
    mode?: 'default' | 'simple';
    /**
     * Uses language detection by default but you can specify the language
     */
    lang?: string;
    /**
     * Equar [configure(options)](https://highlightjs.readthedocs.io/en/latest/api.html#configure)
     */
    options?: Partial<HLJSOptions>;
}
declare const HIGHLIGHTJS_CONFIG: InjectionToken<HighlightJsConfig>;
declare function provideHighlightJsConfig(options: Partial<HighlightJsConfig>): EnvironmentProviders;

export { HIGHLIGHTJS_CONFIG, HighlightJsDirective, HighlightJsModule, provideHighlightJsConfig };
export type { HighlightJsConfig };