import { ComputedRef } from 'vue';
import { Alignment } from '../types';
/**
 * @description 轴选择器配置对象
 */
export interface AxisSelector {
    /** 获取元素的滚动偏移量 */
    getScroll: (el: HTMLElement) => number;
    /** 设置元素的滚动偏移量 */
    setScroll: (el: HTMLElement, val: number) => void;
    /** 获取元素的主轴尺寸 */
    getAxisSize: (el: HTMLElement) => number;
    /** 获取元素的主轴滚动范围 */
    getScrollSize: (el: HTMLElement) => number;
    /** 获取元素的主轴可视尺寸 */
    getClientSize: (el: HTMLElement) => number;
    /** 调用 scrollTo 并在正确的轴上设置偏移量 */
    scrollToPos: (el: HTMLElement, pos: number, behavior: ScrollBehavior) => void;
}
/**
 * @description 根据布局方向创建轴选择器
 * @param isHorizontal 是否水平布局
 * @returns 轴选择器方法对象
 */
export declare function createAxisSelector(isHorizontal: ComputedRef<boolean>): AxisSelector;
/**
 * @description 尺寸信息配置对象
 */
export interface SizeInfo {
    /** 容器主轴尺寸 */
    containerSize: number;
    /** 目标项的尺寸 */
    itemSize: number;
}
/**
 * @description 计算滚动目标位置（对齐策略）
 * @param itemTop 目标项的 top 偏移量
 * @param align 对齐方式
 * @param sizes 尺寸信息
 * @returns 最终滚动目标位置
 */
export declare function calculateScrollTarget(itemTop: number, align: Alignment, sizes: SizeInfo): number;
/**
 * @description 视口位置信息配置对象
 */
export interface ViewportInfo {
    /** 当前滚动位置 */
    currentScroll: number;
    /** 目标项 top */
    itemTop: number;
    /** 目标项尺寸 */
    itemSize: number;
    /** 容器尺寸 */
    containerSize: number;
}
/**
 * @description 解析 'nearest' 对齐方式为具体对齐
 * @param viewport 视口位置信息
 * @returns 解析后的对齐方式，或 null 表示已在视口内无需滚动
 */
export declare function resolveNearestAlign(viewport: ViewportInfo): Alignment | null;
