import * as i0 from '@angular/core';
import { ElementRef, OnInit, QueryList, WritableSignal, NgZone, ChangeDetectorRef, Renderer2, DestroyRef } from '@angular/core';
import { Router } from '@angular/router';
import { NgDocPageToc, NgDocTocItem } from '@ng-doc/app/interfaces';

declare class NgDocTocElementComponent {
    path: string;
    hash: string;
    selected: boolean;
    level: number;
    readonly elementRef: ElementRef<HTMLElement>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTocElementComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTocElementComponent, "li[ng-doc-toc-element]", never, { "path": { "alias": "path"; "required": false; }; "hash": { "alias": "hash"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "level": { "alias": "level"; "required": false; }; }, {}, never, ["*"], true, never>;
}

declare class NgDocTocComponent implements NgDocPageToc, OnInit {
    tableOfContent: NgDocTocItem[];
    selection?: ElementRef<HTMLElement>;
    elements: QueryList<NgDocTocElementComponent>;
    activeItem: WritableSignal<NgDocTocItem | undefined>;
    protected readonly document: Document;
    protected readonly ngZone: NgZone;
    protected readonly changeDetectorRef: ChangeDetectorRef;
    protected readonly renderer: Renderer2;
    protected readonly router: Router;
    protected readonly destroyRef: DestroyRef;
    constructor();
    ngOnInit(): void;
    /**
     * Selects the item in the table of content.
     * @param item - Item to select.
     */
    protected select(item: NgDocTocItem): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTocComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTocComponent, "ng-doc-toc", never, { "tableOfContent": { "alias": "tableOfContent"; "required": false; }; }, {}, never, never, true, never>;
}

export { NgDocTocComponent, NgDocTocElementComponent };
