export interface EmbeddableApiConfig { apiKey?: string; baseUrl?: string; debug?: boolean; } export interface ApiResponse { data: T; success: boolean; message?: string; error?: string; } export interface LocalStorageOptions { prefix?: string; serialize?: (value: any) => string; deserialize?: (value: string) => any; } export type EmbeddableMode = 'embeddable' | 'standalone' | 'preview'; export interface EmbeddableConfig { widgetId: string; version: 'dev' | 'latest' | string; mode: EmbeddableMode; ignoreCache: boolean; lazyLoad: boolean; loader: boolean; _containerId?: string; _shadowRoot?: ShadowRoot; } export interface FormSubmission> { widgetId: string; collectionName: string; payload: TPayload; } export interface FormSubmissionResponse { id?: string; success: boolean; message?: string; } export interface FormSubmissionOptions { collectionName?: string; validatePayload?: (payload: any) => string | null; } export interface Vote { widgetId: string; collectionName: string; voteFor: string; } export interface VoteResponse { id?: string; success: boolean; message?: string; } export interface VoteOptions { collectionName?: string; } export interface VoteAggregationResult { _id: string; count: number; percentage?: number; } export interface VoteAggregationSummary { totalVotes: number; totalOptions: number; groupBy: string; } export interface VoteAggregationData { results: VoteAggregationResult[]; summary: VoteAggregationSummary; } export interface VoteAggregationResponse { success: boolean; data: VoteAggregationData; } export interface PublicSubmissionsQueryParams { widgetId: string; collectionName?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: 'asc' | 'desc'; fromDate?: string; toDate?: string; } export interface PublicSubmission { _id: string; widgetId: string; collectionName: string; payload: Record; createdAt: string; updatedAt: string; } export interface PublicSubmissionsPagination { page: number; limit: number; total: number; pages: number; } export interface PublicSubmissionsData { submissions: PublicSubmission[]; pagination: PublicSubmissionsPagination; } export interface PublicSubmissionsResponse { success: boolean; data: PublicSubmission[]; pagination: PublicSubmissionsPagination; message?: string; error?: string; } export interface PublicSubmissionsOptions { collectionName?: string; page?: number; limit?: number; sortBy?: string; sortOrder?: 'asc' | 'desc'; fromDate?: string; toDate?: string; } export type ReviewSource = 'google' | 'yelp' | 'trustpilot' | 'facebook'; export interface ReviewSourceMetadata { reviewUrl?: string; profileUrl?: string; language?: string; localGuide?: boolean; timeAgo?: string; reviewerReviewsCount?: number; reviewerPhotosCount?: number; imagesCount?: number; images?: string[]; ownerAnswer?: string; ownerAnswerTimestamp?: string; ownerAnswerTimeAgo?: string; [key: string]: any; } export interface Review { _id?: string; widgetId: string; organizationId: string; integrationId: string; source: ReviewSource; reviewId: string; authorName: string; authorImage?: string; rating: number; text?: string; reviewDate: Date | string; sourceMetadata?: ReviewSourceMetadata; status: 'active' | 'hidden' | 'deleted'; syncedAt: Date | string; createdAt: Date | string; updatedAt: Date | string; } export interface ReviewStats { totalReviews: number; averageRating: number; ratingDistribution: { 1: number; 2: number; 3: number; 4: number; 5: number; }; } export interface ReviewsData { reviews: Review[]; total: number; limit: number; offset: number; stats: ReviewStats; } export interface ReviewsResponse { success: boolean; data: ReviewsData; message?: string; error?: string; } export interface UseReviewsOptions { source?: ReviewSource; minRating?: number; limit?: number; offset?: number; sortBy?: string; sortOrder?: 'asc' | 'desc'; autoFetch?: boolean; } export type SocialSource = 'instagram' | 'tiktok'; export interface SocialPost { _id?: string; widgetId: string; organizationId: string; integrationId: string; source: SocialSource; postId: string; type: 'image' | 'video' | 'carousel'; caption?: string; mediaUrl?: string; videoUrl?: string; permalink?: string; authorUsername: string; authorName?: string; authorAvatar?: string; likeCount?: number; commentCount?: number; viewCount?: number; shareCount?: number; playCount?: number; mediaItems?: Array<{ url: string; type: 'image' | 'video'; width?: number; height?: number; }>; postedAt: Date | string; sourceMetadata?: Record; status: 'active' | 'hidden' | 'deleted'; syncedAt: Date | string; createdAt: Date | string; updatedAt: Date | string; } export interface SocialStats { totalPosts: number; totalLikes: number; totalComments: number; totalViews: number; } export interface SocialData { posts: SocialPost[]; total: number; limit: number; offset: number; stats: SocialStats; } export interface SocialResponse { success: boolean; data: SocialData; message?: string; error?: string; } export interface UseSocialOptions { source?: SocialSource; integrationId?: string; limit?: number; offset?: number; sortBy?: string; sortOrder?: 'asc' | 'desc'; autoFetch?: boolean; } //# sourceMappingURL=index.d.ts.map