/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { ScrollAction, PageAction } from './services/main';
/**
 * @hidden
 */
export interface ScrollActionArguments {
    index: number;
    target: HTMLDivElement | null;
    scrollAction?: ScrollAction;
    pageAction?: PageAction;
    animationInProgress: boolean;
}
/**
 * @hidden
 */
export declare enum ScrollDirection {
    Backward = 0,
    Forward = 1
}
/**
 * @hidden
 */
export type Direction = 'horizontal' | 'vertical';
/**
 * @hidden
 */
export interface VirtualizationComputed {
    [key: string]: any;
    element: HTMLDivElement | null;
}
/**
 * @hidden
 */
export interface VirtualizationProps {
    bottomOffset: number;
    direction?: String;
    forceScroll?: boolean;
    itemHeight?: number;
    itemWidth?: number;
    maxScrollDifference?: number;
    scrollOffsetSize?: number;
    scrollDuration?: number;
    skip: number;
    tabIndex?: number;
    take: number;
    topOffset: number;
    total: number;
    role?: string;
}
/**
 * @hidden
 */
declare const Virtualization: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    bottomOffset: {
        type: NumberConstructor;
        required: true;
    };
    direction: {
        type: StringConstructor;
        default: () => string;
    };
    forceScroll: {
        type: BooleanConstructor;
        default: boolean;
    };
    itemHeight: NumberConstructor;
    itemWidth: NumberConstructor;
    maxScrollDifference: {
        type: NumberConstructor;
        default: number;
    };
    scrollDuration: {
        type: NumberConstructor;
        default: number;
    };
    scrollOffsetSize: {
        type: NumberConstructor;
        default: number;
    };
    skip: {
        type: NumberConstructor;
        required: true;
    };
    tabIndex: NumberConstructor;
    take: {
        type: NumberConstructor;
        required: true;
    };
    topOffset: {
        type: NumberConstructor;
        required: true;
    };
    total: {
        type: NumberConstructor;
        required: true;
    };
    role: StringConstructor;
}>, {}, {}, {
    element(): HTMLDivElement | null;
}, {
    containerOffsetSize(): number;
    containerScrollSize(): number;
    containerScrollPosition(): number;
    activeIndex(): number;
    itemIndex(offset: number): number;
    itemOffset(index: number): number;
    isIndexVisible(index: number): boolean;
    isListScrolled(index: number): boolean;
    scrollTo(value: number): void;
    scrollToIndex(index: number): void;
    animateToIndex(index: number): void;
    scrollToBottom(): void;
    scrollStep(start: number, end: number): number;
    scrollRange(indexOffset: number, direction: ScrollDirection): any;
    containerMaxScroll(): number;
    getContainerScrollDirection(indexOffset: number): ScrollDirection;
    initServices(newProps?: any): void;
    getContainerProperty(propertyName: string): number;
    handleScroll(event: any): void;
    handleScrollAction(action: ScrollAction): void;
    handlePageAction(action: PageAction): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    scroll: (event: any) => true;
    scrollaction: (event: any) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    bottomOffset: {
        type: NumberConstructor;
        required: true;
    };
    direction: {
        type: StringConstructor;
        default: () => string;
    };
    forceScroll: {
        type: BooleanConstructor;
        default: boolean;
    };
    itemHeight: NumberConstructor;
    itemWidth: NumberConstructor;
    maxScrollDifference: {
        type: NumberConstructor;
        default: number;
    };
    scrollDuration: {
        type: NumberConstructor;
        default: number;
    };
    scrollOffsetSize: {
        type: NumberConstructor;
        default: number;
    };
    skip: {
        type: NumberConstructor;
        required: true;
    };
    tabIndex: NumberConstructor;
    take: {
        type: NumberConstructor;
        required: true;
    };
    topOffset: {
        type: NumberConstructor;
        required: true;
    };
    total: {
        type: NumberConstructor;
        required: true;
    };
    role: StringConstructor;
}>> & Readonly<{
    onScroll?: (event: any) => any;
    onScrollaction?: (event: any) => any;
}>, {
    direction: string;
    forceScroll: boolean;
    maxScrollDifference: number;
    scrollDuration: number;
    scrollOffsetSize: number;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { Virtualization };
