import type { ReactNode } from 'react'; import { StyleProp, TextStyle, ViewStyle } from 'react-native'; export type PickerValue = string | number; export type PickerValueExtend = { columns: PickerColumn[]; items: (PickerColumnItem | undefined)[]; }; export type PickerColumnItem = { label: string | ReactNode; value: string | number; key?: string | number; children?: PickerColumnItem[]; }; export type PickerColumn = PickerColumnItem[]; export interface PickerViewPropsType { value?: PickerValue[]; defaultValue?: PickerValue[]; data: PickerColumn | PickerColumn[]; cols?: number; cascade?: boolean; loading?: boolean; loadingContent?: ReactNode; numberOfLines?: number; style?: StyleProp; itemStyle?: StyleProp; itemHeight?: number; indicatorStyle?: StyleProp; onChange?: (value: PickerValue[], extend: PickerValueExtend) => void; renderLabel?: (item: PickerColumnItem, itemIndex: number, colIndex: number) => ReactNode; renderMaskTop?: () => ReactNode; renderMaskBottom?: () => ReactNode; }