import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, AfterViewInit, NgZone } from '@angular/core';
import { DocsTocMetadata, DocsTocItem } from './types';
import * as i0 from "@angular/core";
/**
 * val-docs-toc
 *
 * A table of contents component with scroll spy functionality.
 * Automatically highlights the current section based on scroll position.
 *
 * @example Manual items
 * ```html
 * <val-docs-toc
 *   [props]="{
 *     title: 'On this page',
 *     items: [
 *       { id: 'overview', label: 'Overview', level: 1 },
 *       { id: 'installation', label: 'Installation', level: 1 },
 *       { id: 'npm', label: 'Using npm', level: 2 },
 *       { id: 'yarn', label: 'Using yarn', level: 2 }
 *     ]
 *   }"
 * ></val-docs-toc>
 * ```
 *
 * @example Auto-generated from headings
 * ```html
 * <val-docs-toc
 *   [props]="{
 *     autoGenerate: true,
 *     containerSelector: '.article-content',
 *     headingLevels: [2, 3]
 *   }"
 * ></val-docs-toc>
 * ```
 */
export declare class DocsTocComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
    private ngZone;
    props: DocsTocMetadata;
    sectionChange: EventEmitter<string>;
    protected activeId: import("@angular/core").WritableSignal<string>;
    protected flatItems: import("@angular/core").WritableSignal<DocsTocItem[]>;
    private headingElements;
    private scrollHandler;
    private rafId;
    constructor(ngZone: NgZone);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private updateFlatItems;
    private flattenItems;
    private generateTocFromHeadings;
    private generateId;
    private scrollContainer;
    private setupScrollSpy;
    private findScrollContainer;
    private updateActiveHeading;
    private destroyScrollSpy;
    scrollToSection(event: Event, id: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DocsTocComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DocsTocComponent, "val-docs-toc", never, { "props": { "alias": "props"; "required": false; }; }, { "sectionChange": "sectionChange"; }, never, never, true, never>;
}
