import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
export declare enum MAutoHorizontalScrollGradientBackgroundStyle {
    White = "white",
    Light = "light",
    Dark = "dark",
    Interactive = "interactive"
}
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 gradientBackgroundStyle: MAutoHorizontalScrollGradientBackgroundStyle;
    readonly leftGradientActive: boolean;
    readonly rightGradientActive: boolean;
    readonly previousButtonActive: boolean;
    readonly nextButtonActive: boolean;
    readonly previousButtonText?: string;
    readonly nextButtonText?: string;
    readonly displayHorizontalScrollbar: boolean;
    $refs: {
        body: HTMLElement;
        bodyContent: 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;
    readonly hasLeftGradient: boolean;
    readonly hasRightGradient: boolean;
    readonly hasPreviousButton: boolean;
    readonly hasNextButton: boolean;
    readonly isGradientBackgroundStyleWhite: boolean;
    readonly isGradientBackgroundStyleLight: boolean;
    readonly isGradientBackgroundStyleDark: boolean;
    readonly isGradientBackgroundStyleInteractive: boolean;
    readonly 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 checkGradientPresence;
}
declare const AutoHorizontalScrollPlugin: PluginObject<any>;
export default AutoHorizontalScrollPlugin;
//# sourceMappingURL=auto-horizontal-scroll.d.ts.map