import React, { HTMLAttributes, ReactNode } from 'react';
import { HasPlatform } from '../../types';
import { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';
import { SplitColContextProps } from '../SplitCol/SplitCol';
export declare const transitionStartEventName = "VKUI:View:transition-start";
export declare const transitionEndEventName = "VKUI:View:transition-end";
declare enum SwipeBackResults {
fail = 1,
success = 2
}
interface Scrolls {
[index: string]: number;
}
export declare type TransitionStartEventDetail = {
scrolls: Scrolls;
from: string;
to: string;
};
export interface ViewProps extends HTMLAttributes, HasPlatform {
activePanel: string;
popout?: ReactNode;
modal?: ReactNode;
onTransition?(params: {
isBack: boolean;
from: string;
to: string;
}): void;
/**
* callback свайпа назад
*/
onSwipeBack?(): void;
/**
* callback начала анимации свайпа назад.
*/
onSwipeBackStart?(): void;
/**
* callback завершения анимации отмененного пользователем свайпа
*/
onSwipeBackCancel?(): void;
history?: string[];
id?: string;
/**
* @ignore
*/
splitCol?: SplitColContextProps;
/**
* @ignore
*/
configProvider?: ConfigProviderContextInterface;
}
export interface ViewState {
scrolls: Scrolls;
animated: boolean;
startT?: Date;
visiblePanels: string[];
activePanel: string;
isBack: boolean;
prevPanel: string;
nextPanel: string;
swipingBack: boolean;
swipebackStartX: number;
swipeBackShift: number;
swipeBackNextPanel: string;
swipeBackPrevPanel: string;
swipeBackResult: SwipeBackResults;
browserSwipe: boolean;
}
declare const _default: React.ComponentType;
export default _default;