import { IProductBtns, IProductImage, IProductTitle } from "../components" import { ProductCardProps } from "../components/ProductCard" export interface IProductCard { id: string title: string img?: string } export interface IProductContext { count: number handleIncreaseBy: (value: number) => void product: IProductCard maxCount?: number } export interface IProductCardHOC { ({ children, product }: ProductCardProps): JSX.Element Title: (props: IProductTitle) => JSX.Element Img: (props: IProductImage) => JSX.Element Buttons: (props: IProductBtns) => JSX.Element } export interface onChangeArgs { product: IProductCard count: number } export interface IProductInCart extends IProductCard { count: number } export interface InitialValues { count?: number maxCount?: number } export interface ProductCardHandlers { count: number isMaxCountReached: boolean maxCount?: number product: IProductCard increaseBy: (value: number) => void reset: () => void }