import {PropsWithChildren} from 'react';
import {StyleProp, ViewStyle} from 'react-native';

export type InputSize = 'sm' | 'lg';

export interface InputCommonProps {
  isSuccess?: boolean;
  isError?: boolean;
  disabled?: boolean;
  focused?: boolean;
  size?: InputSize;
}

export interface InputAccessibilities {
  label?: string;
  helper?: string | string[];
  helperNumberOfLines?: number;
  placeholder?: string;
}

export interface InputCoreProps
  extends InputCommonProps,
    InputAccessibilities,
    PropsWithChildren {
  inputLength?: number;
  inputMaxLength?: number;
  style?: StyleProp<ViewStyle>;
}
