///
import { ReviewStatusEnum } from '../Account/types';
import { PaginationClassName } from '../Pagination/type';
import { ThumborSettingType } from '../Common/types';
import { ProductInfoClassesType } from './components/ProductInfo';
import { ProductReviewListProps } from './components/ProductReviewList';
import { OrderReviewHeadClassesType } from './components/OrderReviewHead';
import { ProductReviewFormClassesType } from './components/ProductReviewForm';
import { ProductReviewCardClassesType } from './components/ProductReviewCard';
import { PopupConfirmationClassesType } from './components/PopupConfirmation';
/** Schema Based Typings */
declare type OrderAddress = {
name: string;
email: string;
};
export declare type OrderInfoType = {
ID: string;
status: string;
billingAddress: OrderAddress;
createdAt: number;
};
export declare type OrderInfoResponseType = {
members: Array<{
orders: {
items: Array;
};
}>;
};
export declare type OrderInfoParamType = {
memberID?: string | null;
};
declare type ProductDetailType = {
name: string;
language: string;
};
declare type ProductType = {
imageURLs: Array;
details: Array;
};
export declare type ProductReviewType = {
ID: string;
productID: string;
status: ReviewStatusEnum;
product: ProductType;
rating: number;
review?: string;
reviewerEmail?: string;
reviewerName?: string;
imageURLs: Array;
videoURLs: Array;
};
export declare type PagedProductReviewResponseType = {
brands: Array<{
productReviews: {
items: Array;
pageInfo: {
totalItems: number;
itemPerPage: number;
pageNumber: number;
};
};
}>;
};
export declare type OrderReviewProps = Partial> & Partial> & Partial> & {
orderID: string;
starColor?: string;
classes?: Partial;
reviewsNextLabel?: React.ReactNode;
reviewsPrevLabel?: React.ReactNode;
itemPerPageOptions?: Array;
loadingComponent?: React.ReactNode;
errorComponent?: React.ReactNode;
thumborSetting: ThumborSettingType;
onSuccessMsg: (msg: string) => void;
onErrorMsg: (msg: string) => void;
};
declare type ItemPerPageClassesType = {
itemPerPageClassName?: string;
itemPerPageOptionsClassName?: string;
itemPerPageOptionClassName?: string;
itemPerPageActiveClassName?: string;
};
declare type ProductReviewFilterType = {
orderIDs: Array;
status?: Array | null;
};
declare type ProductReviewSortType = {
isAscending: boolean;
};
declare type ProductReviewPageType = {
pageNumber: number;
itemPerPage: number;
};
export declare type PagedProductReviewParamType = {
filter?: ProductReviewFilterType;
sort?: ProductReviewSortType;
page?: ProductReviewPageType;
};
export declare type ProductReviewUpsertInputType = Omit & {
brandID: string | null;
reviewerName: string;
reviewerEmail: string;
orderID: string;
};
export declare type ProductReviewUpsertParamType = {
input: {
specs: Array;
};
};
export declare type ProductReviewUpsertResponseType = Pick & {
submittedAt: number;
};
/** End of Schema Based Typings */
export declare type ProductReviewInputType = Pick;
export declare type FileURLType = {
id: number;
url: string;
type: string;
};
export {};