import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
import { Router } from '@angular/router';
import { OverlayScrollbars } from 'overlayscrollbars';
import { ScrollOptions } from './scrollbar.model';
import * as i0 from "@angular/core";
/**
 * Directive based on overlayscrollbars to customize overflow through a dedicated directive
 *
 */
export declare class ScrollBarDirective implements AfterViewInit, OnDestroy {
    readonly element: ElementRef;
    private readonly router;
    /**
     * Input used as selector for the directive
     */
    micScrollBar: string;
    /**
     * Options for the scrollbar
     */
    micScrollBarOptions: ScrollOptions;
    /**
     * Callbacks for the scrollbar
     */
    micScrollBarCallbacks: EventListener;
    scroll: OverlayScrollbars;
    private routerSubscription?;
    handleKeyboardEvent(event: KeyboardEvent): void;
    /**
     * For print mode
     * Overlayscrollbar need to be disabled
     */
    onBeforePrint(): void;
    /**
     * For display mode
     * Overlayscrollbar need to be enabled
     */
    onAfterPrint(): void;
    constructor(element: ElementRef, router: Router);
    /**
     * Create a scrollbar using lib overlayscrollbars
     */
    createScrollbar(): void;
    /**
     * Destroy the current scrollbar if exists
     */
    destroyScrollbar(): void;
    /**
     * Create scrollbar when dom is ready
     */
    ngAfterViewInit(): void;
    /**
     * Delete scrollbar instance
     */
    ngOnDestroy(): void;
    /**
     * Init route detection to force reset scroll bar
     */
    initRouteDetection(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ScrollBarDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollBarDirective, "[micScrollBar]", never, { "micScrollBar": { "alias": "micScrollBar"; "required": false; }; "micScrollBarOptions": { "alias": "micScrollBarOptions"; "required": false; }; "micScrollBarCallbacks": { "alias": "micScrollBarCallbacks"; "required": false; }; }, {}, never, never, false, never>;
}
