import * as i0 from '@angular/core';
import { OnDestroy, ElementRef, Renderer2 } from '@angular/core';
import { HasElementRef } from '@fundamental-ngx/cdk/utils';
import * as i1 from '@angular/cdk/overlay';

type ScrollbarOverflowOptions = 'auto' | 'scroll' | 'hidden';
/**
 * The scrollbar directive.
 *
 * Children usage:
 * ```html
 * <div fd-scrollbar>
 * <div fd-scrollbar noVerticalScroll>
 * <div fd-scrollbar [noVerticalScroll]="true">
 * <div fd-scrollbar noHorizontalScroll>
 * <div fd-scrollbar [noHorizontalScroll]="true">
 * ```
 */
declare class ScrollbarDirective implements OnDestroy, HasElementRef {
    /** Whether overflow horizontal content should be hidden. */
    noHorizontalScroll: boolean;
    /** Whether overflow vertical content should be hidden. */
    noVerticalScroll: boolean;
    /** Whether scrollbars should be visible even if content fits. */
    alwaysVisible: boolean;
    /** @hidden */
    get _overflowX(): ScrollbarOverflowOptions;
    /** @hidden */
    get _overflowY(): ScrollbarOverflowOptions;
    /** @hidden */
    _inPopover: boolean;
    /** @hidden */
    elementRef: ElementRef<HTMLElement>;
    /** @hidden */
    private _document;
    /** @hidden */
    private readonly _csp_nonce;
    /**
     * @hidden
     */
    constructor(renderer2: Renderer2);
    /** @hidden */
    onScroll(event: Event): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** method to invoke scroll */
    scroll(options: ScrollToOptions): void;
    /** @hidden */
    private get _overflow();
    static ɵfac: i0.ɵɵFactoryDeclaration<ScrollbarDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollbarDirective, "[fdScrollbar], [fd-scrollbar]", never, { "noHorizontalScroll": { "alias": "noHorizontalScroll"; "required": false; }; "noVerticalScroll": { "alias": "noVerticalScroll"; "required": false; }; "alwaysVisible": { "alias": "alwaysVisible"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.CdkScrollable; inputs: {}; outputs: {}; }]>;
    static ngAcceptInputType_noHorizontalScroll: unknown;
    static ngAcceptInputType_noVerticalScroll: unknown;
    static ngAcceptInputType_alwaysVisible: unknown;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class ScrollbarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ScrollbarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ScrollbarModule, never, [typeof ScrollbarDirective], [typeof ScrollbarDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ScrollbarModule>;
}

export { ScrollbarDirective, ScrollbarModule };
export type { ScrollbarOverflowOptions };
