///
import type { ViewToken } from 'react-native';
import type { SharedValue } from 'react-native-reanimated';
import type { GestureHandlerEvent } from 'react-native-reanimated/lib/typescript/reanimated2/hook';
import type { StoriesType, StoryContainerProps, StoryType } from '../StoryView/types';
export declare enum TransitionMode {
Default = 0,
Cube = 1,
Scale = 2
}
export interface MultiStoryContainerProps extends Omit {
stories: StoriesType[];
onComplete?: () => void;
onUserStoryIndexChange?: (index: number) => void;
userStoryIndex?: number;
visible?: boolean;
viewedStories: Array;
pointers?: {
pageX: number;
pageY: number;
};
onChangePosition?: (storyIndex: number, userIndex?: number) => void | undefined;
transitionMode?: TransitionMode;
}
export interface MultiStoryListItemProps extends Omit {
item: StoriesType;
index: number;
storyIndex: number;
viewedStories: Array;
nextStory?: () => void;
previousStory?: () => void;
onComplete?: () => void;
transitionMode?: TransitionMode;
scrollX: ScrollValue;
isTransitionActive: boolean;
flatListRef: any;
storyLength: number;
gestureHandler?: (e: GestureHandlerEvent) => void;
isInitialStory?: boolean;
renderOverlayView?: (item: StoryType) => JSX.Element;
overlayViewPostion?: 'top' | 'bottom' | 'middle';
}
export interface ViewConfig {
viewableItems: Array;
changed: Array;
}
export interface ListItemProps {
item: StoriesType;
index: number;
}
export interface ListItemRef {
onScrollBegin: () => void;
onScrollEnd: () => void;
handleLongPress: (visibility: boolean) => void;
}
export interface DraggableGestureProps {
backgroundColor?: string;
onComplete?: () => void;
handleLongPress: (visibility: boolean) => void;
isKeyboardVisible: boolean;
isScrollActive: boolean;
pointers?: PointerType;
}
export declare type ViewableItemsRef = {
index: number | null;
length: number;
} | null;
export declare type ScrollValue = SharedValue;
export declare type PointerType = {
pageX: number;
pageY: number;
};