import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
import './auto-horizontal-scroll-unscoped.scss';
export declare enum MAutoHorizontalScrollGradientStyle {
    Any = "Any",
    White = "white",
    Light = "light",
    Dark = "dark",
    GreyBlack = "grey-black",
    Interactive = "interactive",
    InteractiveDark = "interactive-dark",
    InteractiveDarker = "interactive-darker",
    CurrentColor = "current-color"
}
export interface MAutoHorizontalScrollResizeProperties {
    element: HTMLElement;
    hasHorizontalScroll: boolean;
    componentWidth: string;
    horizontalScollbarWidth: number;
}
export declare class MAutoHorizontalScroll extends ModulVue {
    readonly minWidth: string;
    readonly horizontalScrollOffset: number;
    readonly dragActive: boolean;
    readonly gradientStyle: MAutoHorizontalScrollGradientStyle;
    readonly leftGradientActive: boolean;
    readonly rightGradientActive: boolean;
    readonly previousButtonActive: boolean;
    readonly nextButtonActive: boolean;
    readonly previousButtonText?: string;
    readonly nextButtonText?: string;
    readonly displayHorizontalScrollbar: boolean;
    readonly refBody: HTMLElement;
    readonly refBodyContent: HTMLElement;
    hasHorizontalScroll: boolean;
    couldHaveLeftContent: boolean;
    couldHaveRightContent: boolean;
    componentWidth: string;
    componentHeight: string;
    scrollLeftCounter: number;
    scrollAnimationActive: boolean;
    scrollAnimationInterval: any;
    isDragging: boolean;
    startXDragging: number;
    scrollLeftDragging: number;
    private observer;
    emitResize(resizeProperties: MAutoHorizontalScrollResizeProperties): void;
    emitUpdateHorizontalScrollOffset(horizontalScrollOffset: number): void;
    emitPreviousButtonClick(event: MouseEvent): void;
    emitNextButtonClick(event: MouseEvent): void;
    onLeftGradientActiveChange(): void;
    onDisplayHorizontalScrollbarChange(): void;
    onHorizontalScrollOffsetChange(): Promise<void>;
    onRightGradientActiveChange(): void;
    get componentHeightStyle(): {
        height?: string;
    };
    get buttonAreaHeightStyle(): {
        height?: string;
    };
    get hasLeftGradient(): boolean;
    get hasRightGradient(): boolean;
    get hasPreviousButton(): boolean;
    get hasNextButton(): boolean;
    get isGradientStyleDark(): boolean;
    get isGradientStyleInteractive(): boolean;
    get isGradientStyleGreyBlack(): boolean;
    get isGradientStyleInteractiveDark(): boolean;
    get isGradientStyleInteractiveDarker(): boolean;
    get iconButtonSkin(): string;
    startScrollAnimation(): Promise<void>;
    stopScrollAnimation(): void;
    onScroll(): Promise<void>;
    onMousedown(e: MouseEvent): void;
    onMouseleave(): void;
    onMouseup(): void;
    onMousemove(e: MouseEvent): void;
    protected mounted(): void;
    protected beforeDestroy(): void;
    private resizeComponent;
    private setScrollLeftOffset;
    private checkGradientPresence;
}
declare const AutoHorizontalScrollPlugin: PluginObject<any>;
export default AutoHorizontalScrollPlugin;
//# sourceMappingURL=auto-horizontal-scroll.d.ts.map