import { type PropType } from 'vue';
export type ScrollAreaStylesNames = 'root' | 'viewport' | 'scrollbar' | 'thumb' | 'corner' | 'content';
export type ScrollAreaType = 'auto' | 'always' | 'scroll' | 'hover' | 'never';
export type ScrollAreaScrollbars = 'x' | 'y' | 'xy' | false;
export interface ScrollAreaProps {
    scrollbarSize?: number | string;
    type?: ScrollAreaType;
    scrollHideDelay?: number;
    scrollbars?: ScrollAreaScrollbars;
    offsetScrollbars?: boolean | 'x' | 'y' | 'present';
    viewportProps?: Record<string, any>;
    onScrollPositionChange?: (position: {
        x: number;
        y: number;
    }) => void;
    onBottomReached?: () => void;
    onTopReached?: () => void;
    onLeftReached?: () => void;
    onRightReached?: () => void;
    overscrollBehavior?: string;
    startScrollPosition?: {
        x?: number;
        y?: number;
    };
}
export declare const ScrollAreaBase: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    scrollbarSize: PropType<string | number>;
    type: {
        type: PropType<ScrollAreaType>;
        default: undefined;
    };
    scrollHideDelay: {
        type: NumberConstructor;
        default: undefined;
    };
    scrollbars: {
        type: PropType<ScrollAreaScrollbars>;
        default: undefined;
    };
    offsetScrollbars: {
        type: PropType<ScrollAreaProps["offsetScrollbars"]>;
        default: undefined;
    };
    viewportProps: {
        type: PropType<Record<string, any>>;
        default: undefined;
    };
    onScrollPositionChange: {
        type: PropType<ScrollAreaProps["onScrollPositionChange"]>;
        default: undefined;
    };
    onBottomReached: {
        type: PropType<ScrollAreaProps["onBottomReached"]>;
        default: undefined;
    };
    onTopReached: {
        type: PropType<ScrollAreaProps["onTopReached"]>;
        default: undefined;
    };
    onLeftReached: {
        type: PropType<ScrollAreaProps["onLeftReached"]>;
        default: undefined;
    };
    onRightReached: {
        type: PropType<ScrollAreaProps["onRightReached"]>;
        default: undefined;
    };
    overscrollBehavior: {
        type: StringConstructor;
        default: undefined;
    };
    startScrollPosition: {
        type: PropType<ScrollAreaProps["startScrollPosition"]>;
        default: undefined;
    };
    classNames: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    styles: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    vars: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    unstyled: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    scrollbarSize: PropType<string | number>;
    type: {
        type: PropType<ScrollAreaType>;
        default: undefined;
    };
    scrollHideDelay: {
        type: NumberConstructor;
        default: undefined;
    };
    scrollbars: {
        type: PropType<ScrollAreaScrollbars>;
        default: undefined;
    };
    offsetScrollbars: {
        type: PropType<ScrollAreaProps["offsetScrollbars"]>;
        default: undefined;
    };
    viewportProps: {
        type: PropType<Record<string, any>>;
        default: undefined;
    };
    onScrollPositionChange: {
        type: PropType<ScrollAreaProps["onScrollPositionChange"]>;
        default: undefined;
    };
    onBottomReached: {
        type: PropType<ScrollAreaProps["onBottomReached"]>;
        default: undefined;
    };
    onTopReached: {
        type: PropType<ScrollAreaProps["onTopReached"]>;
        default: undefined;
    };
    onLeftReached: {
        type: PropType<ScrollAreaProps["onLeftReached"]>;
        default: undefined;
    };
    onRightReached: {
        type: PropType<ScrollAreaProps["onRightReached"]>;
        default: undefined;
    };
    overscrollBehavior: {
        type: StringConstructor;
        default: undefined;
    };
    startScrollPosition: {
        type: PropType<ScrollAreaProps["startScrollPosition"]>;
        default: undefined;
    };
    classNames: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    styles: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    vars: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    unstyled: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{}>, {
    type: ScrollAreaType;
    classNames: Function | Record<string, any>;
    styles: Function | Record<string, any>;
    overscrollBehavior: string;
    vars: Function | Record<string, any>;
    unstyled: boolean;
    scrollbars: ScrollAreaScrollbars;
    scrollHideDelay: number;
    offsetScrollbars: boolean | "x" | "y" | "present" | undefined;
    onScrollPositionChange: ((position: {
        x: number;
        y: number;
    }) => void) | undefined;
    onBottomReached: (() => void) | undefined;
    onTopReached: (() => void) | undefined;
    onLeftReached: (() => void) | undefined;
    onRightReached: (() => void) | undefined;
    startScrollPosition: {
        x?: number;
        y?: number;
    } | undefined;
    viewportProps: Record<string, any>;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export declare const ScrollAreaAutosize: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {} | {
    [x: string]: any;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export declare const ScrollArea: import("../..").WithBoxProps<{
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        scrollbarSize: PropType<string | number>;
        type: {
            type: PropType<ScrollAreaType>;
            default: undefined;
        };
        scrollHideDelay: {
            type: NumberConstructor;
            default: undefined;
        };
        scrollbars: {
            type: PropType<ScrollAreaScrollbars>;
            default: undefined;
        };
        offsetScrollbars: {
            type: PropType<ScrollAreaProps["offsetScrollbars"]>;
            default: undefined;
        };
        viewportProps: {
            type: PropType<Record<string, any>>;
            default: undefined;
        };
        onScrollPositionChange: {
            type: PropType<ScrollAreaProps["onScrollPositionChange"]>;
            default: undefined;
        };
        onBottomReached: {
            type: PropType<ScrollAreaProps["onBottomReached"]>;
            default: undefined;
        };
        onTopReached: {
            type: PropType<ScrollAreaProps["onTopReached"]>;
            default: undefined;
        };
        onLeftReached: {
            type: PropType<ScrollAreaProps["onLeftReached"]>;
            default: undefined;
        };
        onRightReached: {
            type: PropType<ScrollAreaProps["onRightReached"]>;
            default: undefined;
        };
        overscrollBehavior: {
            type: StringConstructor;
            default: undefined;
        };
        startScrollPosition: {
            type: PropType<ScrollAreaProps["startScrollPosition"]>;
            default: undefined;
        };
        classNames: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        styles: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        vars: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        unstyled: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
        type: ScrollAreaType;
        classNames: Function | Record<string, any>;
        styles: Function | Record<string, any>;
        overscrollBehavior: string;
        vars: Function | Record<string, any>;
        unstyled: boolean;
        scrollbars: ScrollAreaScrollbars;
        scrollHideDelay: number;
        offsetScrollbars: boolean | "x" | "y" | "present" | undefined;
        onScrollPositionChange: ((position: {
            x: number;
            y: number;
        }) => void) | undefined;
        onBottomReached: (() => void) | undefined;
        onTopReached: (() => void) | undefined;
        onLeftReached: (() => void) | undefined;
        onRightReached: (() => void) | undefined;
        startScrollPosition: {
            x?: number;
            y?: number;
        } | undefined;
        viewportProps: Record<string, any>;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        scrollbarSize: PropType<string | number>;
        type: {
            type: PropType<ScrollAreaType>;
            default: undefined;
        };
        scrollHideDelay: {
            type: NumberConstructor;
            default: undefined;
        };
        scrollbars: {
            type: PropType<ScrollAreaScrollbars>;
            default: undefined;
        };
        offsetScrollbars: {
            type: PropType<ScrollAreaProps["offsetScrollbars"]>;
            default: undefined;
        };
        viewportProps: {
            type: PropType<Record<string, any>>;
            default: undefined;
        };
        onScrollPositionChange: {
            type: PropType<ScrollAreaProps["onScrollPositionChange"]>;
            default: undefined;
        };
        onBottomReached: {
            type: PropType<ScrollAreaProps["onBottomReached"]>;
            default: undefined;
        };
        onTopReached: {
            type: PropType<ScrollAreaProps["onTopReached"]>;
            default: undefined;
        };
        onLeftReached: {
            type: PropType<ScrollAreaProps["onLeftReached"]>;
            default: undefined;
        };
        onRightReached: {
            type: PropType<ScrollAreaProps["onRightReached"]>;
            default: undefined;
        };
        overscrollBehavior: {
            type: StringConstructor;
            default: undefined;
        };
        startScrollPosition: {
            type: PropType<ScrollAreaProps["startScrollPosition"]>;
            default: undefined;
        };
        classNames: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        styles: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        vars: {
            type: (ObjectConstructor | FunctionConstructor)[];
            default: undefined;
        };
        unstyled: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, {
        type: ScrollAreaType;
        classNames: Function | Record<string, any>;
        styles: Function | Record<string, any>;
        overscrollBehavior: string;
        vars: Function | Record<string, any>;
        unstyled: boolean;
        scrollbars: ScrollAreaScrollbars;
        scrollHideDelay: number;
        offsetScrollbars: boolean | "x" | "y" | "present" | undefined;
        onScrollPositionChange: ((position: {
            x: number;
            y: number;
        }) => void) | undefined;
        onBottomReached: (() => void) | undefined;
        onTopReached: (() => void) | undefined;
        onLeftReached: (() => void) | undefined;
        onRightReached: (() => void) | undefined;
        startScrollPosition: {
            x?: number;
            y?: number;
        } | undefined;
        viewportProps: Record<string, any>;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    scrollbarSize: PropType<string | number>;
    type: {
        type: PropType<ScrollAreaType>;
        default: undefined;
    };
    scrollHideDelay: {
        type: NumberConstructor;
        default: undefined;
    };
    scrollbars: {
        type: PropType<ScrollAreaScrollbars>;
        default: undefined;
    };
    offsetScrollbars: {
        type: PropType<ScrollAreaProps["offsetScrollbars"]>;
        default: undefined;
    };
    viewportProps: {
        type: PropType<Record<string, any>>;
        default: undefined;
    };
    onScrollPositionChange: {
        type: PropType<ScrollAreaProps["onScrollPositionChange"]>;
        default: undefined;
    };
    onBottomReached: {
        type: PropType<ScrollAreaProps["onBottomReached"]>;
        default: undefined;
    };
    onTopReached: {
        type: PropType<ScrollAreaProps["onTopReached"]>;
        default: undefined;
    };
    onLeftReached: {
        type: PropType<ScrollAreaProps["onLeftReached"]>;
        default: undefined;
    };
    onRightReached: {
        type: PropType<ScrollAreaProps["onRightReached"]>;
        default: undefined;
    };
    overscrollBehavior: {
        type: StringConstructor;
        default: undefined;
    };
    startScrollPosition: {
        type: PropType<ScrollAreaProps["startScrollPosition"]>;
        default: undefined;
    };
    classNames: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    styles: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    vars: {
        type: (ObjectConstructor | FunctionConstructor)[];
        default: undefined;
    };
    unstyled: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
    type: ScrollAreaType;
    classNames: Function | Record<string, any>;
    styles: Function | Record<string, any>;
    overscrollBehavior: string;
    vars: Function | Record<string, any>;
    unstyled: boolean;
    scrollbars: ScrollAreaScrollbars;
    scrollHideDelay: number;
    offsetScrollbars: boolean | "x" | "y" | "present" | undefined;
    onScrollPositionChange: ((position: {
        x: number;
        y: number;
    }) => void) | undefined;
    onBottomReached: (() => void) | undefined;
    onTopReached: (() => void) | undefined;
    onLeftReached: (() => void) | undefined;
    onRightReached: (() => void) | undefined;
    startScrollPosition: {
        x?: number;
        y?: number;
    } | undefined;
    viewportProps: Record<string, any>;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    Autosize: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {} | {
        [x: string]: any;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    classes: Record<string, string>;
    varsResolver: (theme: import("../..").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
}>;
