import type { DataSourceFn } from '../../../libs/integration-data-source'; import type * as Models from '../models'; declare global { export namespace ReviewDomain { type Review = Models.Review; type ReviewSummary = Models.ReviewSummary; interface ReviewList extends Models.ReviewList { reviews: Review[]; summary?: ReviewSummary; } } } export interface ReviewListQuery { limit?: number; sortBy?: string; page?: number; } export interface FetchReviewListInput { id: string; query?: ReviewListQuery; } export declare type FetchReviewList = DataSourceFn; export interface FetchReviewInput { id: string; } export declare type FetchReview = DataSourceFn; export declare type CreateReview = DataSourceFn; export interface UpdateReviewInput { review: ReviewDomain.Review; } export declare type UpdateReview = DataSourceFn; export interface DeleteReviewInput { id: string; } export declare type DeleteReview = DataSourceFn; export interface RateReviewInput { id: string; voteType: 'down' | 'up'; undoVote?: boolean; } export declare type RateReview = DataSourceFn; export interface ReviewDataSource { fetchReviewList: FetchReviewList; fetchReview: FetchReview; createReview: CreateReview; updateReview: UpdateReview; deleteReview: DeleteReview; rateReview?: RateReview; }