import * as _angular_core 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. */
    readonly noHorizontalScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Whether overflow vertical content should be hidden. */
    readonly noVerticalScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Whether scrollbars should be visible even if content fits. */
    readonly alwaysVisible: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** @hidden Whether the scrollbar is inside a popover and should stop scroll event propagation. */
    _inPopover: boolean;
    /** @hidden */
    elementRef: ElementRef<HTMLElement>;
    /** @hidden */
    protected readonly _overflowX: _angular_core.Signal<ScrollbarOverflowOptions>;
    /** @hidden */
    protected readonly _overflowY: _angular_core.Signal<ScrollbarOverflowOptions>;
    /** @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;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollbarDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollbarDirective, "[fdScrollbar], [fd-scrollbar]", never, { "noHorizontalScroll": { "alias": "noHorizontalScroll"; "required": false; "isSignal": true; }; "noVerticalScroll": { "alias": "noVerticalScroll"; "required": false; "isSignal": true; }; "alwaysVisible": { "alias": "alwaysVisible"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkScrollable; inputs: {}; outputs: {}; }]>;
}

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

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