import * as React from 'react';
import { type NavIdProps } from '../../lib/getNavId';
import type { HasPlatform, HTMLAttributesWithRootRef } from '../../types';
import { type ScrollContextInterface } from '../AppRoot/ScrollContext';
import { type ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';
import { type SplitColContextProps } from '../SplitCol/SplitColContext';
interface Scrolls {
    [index: string]: Array<number | undefined>;
}
interface ViewsScrolls {
    [index: string]: Scrolls;
}
export declare let scrollsCache: ViewsScrolls;
export type TransitionParams = {
    from: string | null;
    to: string | null;
};
export interface ViewInfiniteProps extends HTMLAttributesWithRootRef<HTMLElement>, HasPlatform, NavIdProps {
    /**
     * `id` активной панели.
     */
    activePanel: string;
    /**
     * Обработчик, который вызывается при завершении анимации смены активной панели.
     */
    onTransition?: (params: TransitionParams & {
        isBack: boolean;
    }) => void;
    /**
     * Обработчик свайпа назад.
     */
    onSwipeBack?: () => void;
    /**
     * Обработчик начала анимации свайпа назад.
     */
    onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';
    /**
     * Обработчик завершения анимации отмененного пользователем свайпа.
     */
    onSwipeBackCancel?: () => void;
    /**
     * Массив из id панелей в порядке открытия.
     */
    history?: string[];
    /**
     * Функция проверки перехода назад.
     */
    isBackCheck?: (params: TransitionParams) => boolean;
    /**
     * @ignore
     */
    splitCol?: SplitColContextProps;
    /**
     * @ignore
     */
    configProvider?: ConfigProviderContextInterface;
    /**
     * @ignore
     */
    scroll?: ScrollContextInterface;
}
export interface ViewInfiniteState {
    animated: boolean;
    visiblePanels: Array<string | null>;
    activePanel: string | null;
    isBack?: boolean;
    prevPanel: string | null;
    nextPanel: string | null;
    swipingBack?: boolean;
    swipeBackStartX: number;
    swipeBackShift: number;
    swipeBackNextPanel: string | null;
    swipeBackPrevPanel: string | null;
    swipeBackResult: 'success' | 'fail' | null;
    browserSwipe: boolean;
}
export declare const ViewInfinite: React.FC<ViewInfiniteProps>;
export {};
//# sourceMappingURL=ViewInfinite.d.ts.map