/**
 * @file wass-rct-ui
 * @description A reusable Title component that supports dynamic heading levels.
 * @author Web Apps Software Solutions
 * @copyright © 2024 Web Apps Software Solutions. All rights reserved.
 * @license MIT
 * @repository https://github.com/WebAppSoftNK/wass-rct-ui
 */
import { SlideDirection } from "../../../types";
export declare class Circular<T> {
    private arr;
    private currentIndex;
    constructor(arr: T[], initialIndex?: number);
    next(): T;
    prev(): T;
    current(): T;
    reset(): void;
    getIndex(): number;
    length(): number;
}
export declare const rotateItems: <T>(items: T[], showingItems: T[], start: number, show: number, slide: number, direction: SlideDirection) => T[];
export declare const getTransformAmount: (width: number, slideCount: number, direction: SlideDirection) => number;
export declare const getCurrent: (current: number, slide: number, length: number, direction: SlideDirection) => number;
interface GetShowArrowProps {
    itemCount: number;
    itemsToShow: number;
    infinite: boolean;
    current: number;
    hideArrows?: boolean;
}
export declare const getShowArrow: ({ itemCount, itemsToShow, infinite, current, hideArrows, }: GetShowArrowProps) => {
    left: boolean;
    right: boolean;
};
export declare const cleanItems: <T>(showingItems: T[], slide: number, direction: SlideDirection) => T[];
export declare const cleanNavigationItems: <T>(showingItems: T[], slide: number, direction: SlideDirection) => T[];
export declare const initItems: <T>(items: T[], slide: number, infinite: boolean) => T[];
export declare function getPageX(event: MouseEvent | TouchEvent): number;
export declare function getOuterWidth(element: HTMLElement): number;
export declare function updateNodes<T extends {
    key: string;
}>(oldItems: T[], newItems: T[], prevChildren: T[] | undefined, slide: number, infinite: boolean): T[];
export declare function areItemsNotMatched<T>(items: T[]): boolean;
export declare function getStartIndex(start: number, slide: number, items: unknown[]): number;
export declare const rotateNavigationItems: <T>(items: T[], showingItems: T[], start: number, show: number, slide: number, direction: SlideDirection) => T[];
export declare const getNavigationSlideAmount: (target: number | undefined, next: number, slideAmount: number, direction: SlideDirection) => number;
export {};
