import type { ComputedRef, Ref } from 'vue';
import type { BasicColumn, BasicTableProps, TableRowSelection } from '../types/table';
declare type Recordable<T = any> = Record<string, T>;
interface ComponentElRef<T extends HTMLElement = HTMLDivElement> {
    $el: T;
}
declare type ComponentRef<T extends HTMLElement = HTMLDivElement> = ComponentElRef<T> | null;
export declare function useTableScroll(propsRef: ComputedRef<BasicTableProps>, tableElRef: Ref<ComponentRef>, columnsRef: ComputedRef<BasicColumn[]>, rowSelectionRef: ComputedRef<TableRowSelection | null>, getDataSourceRef: ComputedRef<Recordable[]>, slots: any, wrapRef: Ref<HTMLElement | null>, formRef: Ref<HTMLElement | null>, actionRef: Ref<HTMLElement | null>): {
    getScrollRef: ComputedRef<{
        x: string | number | true;
        y: number | null;
        scrollToFirstRowOnChange: boolean;
    }>;
    redoHeight: () => void;
    fnInit: () => void;
    keepScrollIns: Ref<{
        onScroll: () => void;
        scrollFn: () => void;
    } | null, {
        onScroll: () => void;
        scrollFn: () => void;
    } | {
        onScroll: () => void;
        scrollFn: () => void;
    } | null>;
};
export {};
