import { PureComponent, ReactNode } from "react"; import { FlatListProps, ImageSourcePropType, ImageStyle, StyleProp, TextStyle, ViewStyle } from "react-native"; export type LineStyle = "solid" | "dashed" | "dotted"; export type InnerCircle = "none" | "icon" | "dot" | "element"; export type ColumnFormat = "single-column-left" | "single-column-right" | "two-column"; export type Position = "left" | "right"; export interface Data { time?: string; title?: string; description?: string | ReactNode; lineWidth?: number; lineStyle?: LineStyle; lineColor?: string; eventContainerStyle?: StyleProp; circleSize?: number; circleColor?: string; dotColor?: string; icon?: ImageSourcePropType | ReactNode; iconDefault?: ImageSourcePropType | ReactNode; position?: Position; titleStyle?: StyleProp; descriptionStyle?: StyleProp; columnSideMargin?: number; columnSidePadding?: number; } export interface TimelineProps { data: Data[]; innerCircle?: InnerCircle; separator?: boolean; columnFormat?: ColumnFormat; lineWidth?: number; lineStyle?: LineStyle; lineColor?: string; circleSize?: number; circleColor?: string; dotColor?: string; dotSize?: number; iconDefault?: ImageSourcePropType | ReactNode; style?: StyleProp; circleStyle?: StyleProp; listViewStyle?: StyleProp; listViewContainerStyle?: StyleProp; timeStyle?: StyleProp; titleStyle?: StyleProp; descriptionStyle?: StyleProp; iconStyle?: StyleProp; separatorStyle?: StyleProp; rowContainerStyle?: StyleProp; eventContainerStyle?: StyleProp; eventDetailStyle?: StyleProp; timeContainerStyle?: StyleProp; detailContainerStyle?: StyleProp; onEventPress?: (event: Data) => void; renderTime?: (rowData: Data, rowID: number) => ReactNode; renderDetail?: (rowData: Data, rowID: number) => ReactNode; renderCircle?: (rowData: Data, rowID: number) => ReactNode; renderFullLine?: boolean; options?: Partial>; showTime?: boolean; isUsingFlatlist?: boolean; isAllowFontScaling?: boolean; columnSideMargin?: number; columnSidePadding?: number; } interface TimelineState { data: Data[]; x: number; width: number; } export default class Timeline extends PureComponent { static defaultProps: Partial; renderTime: (rowData: Data, rowID: number) => ReactNode; renderDetail: (rowData: Data, rowID: number) => ReactNode; renderCircle: (rowData: Data, rowID: number) => ReactNode; renderEvent: (rowData: Data, rowID: number) => ReactNode; constructor(props: TimelineProps); static getDerivedStateFromProps(nextProps: TimelineProps, prevState: TimelineState): Partial | null; private _keyExtractor; render(): ReactNode; private _renderItem; private _renderTime; private _renderEvent; private _renderDetail; private _renderCircle; private _renderSeparator; } export {};