import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef } from '@angular/core';
import { ClassValue } from 'clsx';
import { NgScrollbar } from 'ngx-scrollbar';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

type ZScrollAreaOrientation = 'vertical' | 'horizontal' | 'auto';
type ZScrollAreaVisibility = 'hover' | 'visible' | 'native';
type ZScrollAreaType = 'custom' | 'native';
type ZScrollAreaSize = 'sm' | 'default' | 'lg';

declare class ZScrollAreaComponent implements AfterViewInit {
    readonly scrollbarRef: _angular_core.Signal<NgScrollbar | undefined>;
    readonly nativeViewport: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
    readonly class: _angular_core.InputSignal<ClassValue>;
    readonly zType: _angular_core.InputSignal<ZScrollAreaType>;
    readonly zOrientation: _angular_core.InputSignal<ZScrollAreaOrientation>;
    readonly zVisibility: _angular_core.InputSignal<ZScrollAreaVisibility>;
    readonly zSize: _angular_core.InputSignal<ZScrollAreaSize>;
    readonly zDisableInteraction: _angular_core.InputSignal<boolean>;
    readonly zSensorThrottleTime: _angular_core.InputSignal<number>;
    readonly zDisableSensor: _angular_core.InputSignal<boolean>;
    readonly zScroll: _angular_core.OutputEmitterRef<Event>;
    readonly zScrollbarInit: _angular_core.OutputEmitterRef<NgScrollbar>;
    protected readonly hostClasses: _angular_core.Signal<string>;
    protected readonly nativeClasses: _angular_core.Signal<string>;
    ngAfterViewInit(): void;
    protected onScroll(event: Event): void;
    scrollTo(options: ScrollToOptions): void;
    scrollToElement(selectorOrElement: string | HTMLElement, options?: {
        top?: number;
        left?: number;
        duration?: number;
    }): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZScrollAreaComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZScrollAreaComponent, "z-scrollarea", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zType": { "alias": "zType"; "required": false; "isSignal": true; }; "zOrientation": { "alias": "zOrientation"; "required": false; "isSignal": true; }; "zVisibility": { "alias": "zVisibility"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zDisableInteraction": { "alias": "zDisableInteraction"; "required": false; "isSignal": true; }; "zSensorThrottleTime": { "alias": "zSensorThrottleTime"; "required": false; "isSignal": true; }; "zDisableSensor": { "alias": "zDisableSensor"; "required": false; "isSignal": true; }; }, { "zScroll": "zScroll"; "zScrollbarInit": "zScrollbarInit"; }, never, ["*"], true, never>;
}

declare const zScrollAreaVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZScrollAreaVariants = VariantProps<typeof zScrollAreaVariants>;

export { ZScrollAreaComponent, zScrollAreaVariants };
export type { ZScrollAreaOrientation, ZScrollAreaSize, ZScrollAreaType, ZScrollAreaVariants, ZScrollAreaVisibility };
