import { A as ArtCollection, a as ArtworkPage, M as MasterpiecesConfig, e as CategoryOption, C as CollectionFormData, b as ArtworkFormData } from '../../index-BOMkk6bM.js';
import { C as Cart, A as AddToCartRequest, U as UpdateCartItemRequest, R as RemoveFromCartRequest, B as BatchBookingRequest, e as BatchBookingResponse } from '../../cart-I4RuHXfj.js';
import { d as CollectionSummary, e as BookingFormData, B as BookingStatus } from '../../booking-By-eu9GS.js';
import { c as BookingAdminData, h as BookingAdminStats, j as BookingAdminQueryParams, P as PopupConfig } from '../../bookingAdminService-CjKhLPUR.js';
import * as React from 'react';
import { ReactNode } from 'react';
export { CATEGORY_LABELS, addToMiniappCart, clearMiniappCart, formatPrice, getCategoryLabel, getMiniappCart, removeMiniappCartItem, updateMiniappCartItem } from './miniapp/index.js';

/**
 * ShowMasterpiece 模块 - 上下文类型定义
 *
 * 这个文件定义了ShowMasterpiece模块中所有上下文相关的TypeScript类型。
 * 将类型定义独立出来可以避免循环依赖问题。
 *
 * @fileoverview 上下文类型定义
 */

/**
 * 购物车上下文状态接口
 */
interface CartContextState {
    /** 购物车数据 */
    cart: Cart;
    /** 加载状态 */
    loading: boolean;
    /** 错误信息 */
    error: string | undefined;
    /** 刷新购物车数据 */
    refreshCart: () => Promise<void>;
    /** 添加商品到购物车（活动感知） */
    addToCart: (request: AddToCartRequest & {
        collection?: any;
    }) => Promise<void>;
    /** 更新购物车商品数量（活动感知） */
    updateCartItem: (request: UpdateCartItemRequest) => Promise<void>;
    /** 从购物车移除商品（活动感知） */
    removeFromCart: (request: RemoveFromCartRequest) => Promise<void>;
    /** 批量预订购物车商品（活动感知） */
    batchBooking: (request: BatchBookingRequest) => Promise<BatchBookingResponse>;
    /** 清空购物车（活动感知） */
    clearCart: () => Promise<void>;
}

/**
 * useMasterpieces Hook 主体函数
 *
 * 提供画集数据管理和浏览状态管理的完整解决方案。
 * 包含状态管理、数据获取、缓存机制和用户交互功能。
 *
 */
declare const useMasterpieces: () => {
    /** 所有画集数据 */
    collections: ArtCollection[];
    /** 当前选中的画集 */
    selectedCollection: ArtCollection | null;
    /** 当前页面索引 */
    currentPage: number;
    /** 加载状态 */
    loading: boolean;
    /** 错误信息 */
    error: string | null;
    /** 获取当前作品的方法 */
    getCurrentArtwork: () => ArtworkPage | null;
    /** 是否可以下一页 */
    canGoNext: boolean;
    /** 是否可以上一页 */
    canGoPrev: boolean;
    /** 选择画集 */
    selectCollection: (collection: ArtCollection) => void;
    /** 下一页 */
    nextPage: () => void;
    /** 上一页 */
    prevPage: () => void;
    /** 跳转到指定页 */
    goToPage: (pageIndex: number) => void;
    /** 返回画集列表 */
    backToGallery: () => void;
    /** 搜索画集 */
    searchCollections: (query: string) => Promise<void>;
    /** 加载画集数据 */
    loadCollections: (forceRefresh?: boolean) => Promise<void>;
};

declare const useMasterpiecesConfig: () => {
    config: MasterpiecesConfig | null;
    collections: ArtCollection[];
    categories: CategoryOption[];
    tags: string[];
    loading: boolean;
    error: string | null;
    refreshCounter: number;
    updateConfig: (configData: Partial<MasterpiecesConfig>) => Promise<void>;
    resetConfig: () => Promise<void>;
    createCollection: (collectionData: CollectionFormData) => Promise<void>;
    updateCollection: (id: number, collectionData: CollectionFormData) => Promise<void>;
    deleteCollection: (id: number) => Promise<void>;
    addArtworkToCollection: (collectionId: number, artworkData: ArtworkFormData) => Promise<void>;
    updateArtwork: (collectionId: number, artworkId: number, artworkData: ArtworkFormData) => Promise<void>;
    deleteArtwork: (collectionId: number, artworkId: number) => Promise<void>;
    moveArtworkUp: (collectionId: number, artworkId: number) => Promise<void>;
    moveArtworkDown: (collectionId: number, artworkId: number) => Promise<void>;
    updateArtworkOrder: (collectionId: number, artworkOrders: {
        id: number;
        pageOrder: number;
    }[]) => Promise<void>;
    moveCollectionUp: (collectionId: number) => Promise<void>;
    moveCollectionDown: (collectionId: number) => Promise<void>;
    updateCollectionOrder: (collectionOrders: {
        id: number;
        displayOrder: number;
    }[]) => Promise<void>;
    refreshData: () => Promise<{
        config: MasterpiecesConfig;
        collections: any;
        categories: {
            name: string;
            description?: string | null;
        }[];
        tags: string[];
    }>;
};

/**
 * ShowMasterpiece 模块 - 购物车功能Hook
 *
 * 提供购物车功能相关的状态管理和业务逻辑，包括：
 * - 购物车状态管理
 * - 购物车操作（添加、更新、移除、清空）
 * - 批量预订处理
 * - 错误处理和加载状态
 *
 * @fileoverview 购物车功能Hook
 */

type CartEvent = {
    type: string;
};
type CartEventListener = (event: CartEvent) => void;
interface CartEventTarget {
    addEventListener: (type: string, listener: CartEventListener) => void;
    removeEventListener: (type: string, listener: CartEventListener) => void;
    dispatchEvent: (event: CartEvent) => boolean | void;
}
declare const CART_UPDATE_EVENT = "cart-updated";
declare const cartUpdateEvents: CartEventTarget;
declare const notifyCartUpdate: () => void;
/**
 * 购物车Hook
 *
 * 管理购物车的状态和业务逻辑
 *
 * @param userId 用户ID
 * @returns 购物车状态和操作方法
 */
declare function useCart(userId: number): {
    cart: Cart;
    loading: boolean;
    error: string | undefined;
    isCartOpen: boolean;
    loadCart: () => Promise<void>;
    addItemToCart: (request: AddToCartRequest & {
        userId: number;
        collection?: any;
    }) => Promise<void>;
    updateItemQuantity: (collectionId: number, quantity: number) => Promise<void>;
    removeItemFromCart: (collectionId: number) => Promise<void>;
    clearCartItems: () => Promise<void>;
    checkoutCart: (qqNumber: string, phoneNumber: string, notes?: string, pickupMethod?: string) => Promise<BatchBookingResponse>;
    openCart: () => void;
    closeCart: () => void;
    clearError: () => void;
};

/**
 * ShowMasterpiece 模块 - 预订功能Hook
 *
 * 提供预订功能相关的状态管理和业务逻辑，包括：
 * - 预订表单状态管理
 * - 画集列表加载
 * - 预订提交处理
 * - 错误处理和加载状态
 *
 * @fileoverview 预订功能Hook
 */

/**
 * 预订页面Hook属性
 */
interface UseBookingProps {
}
/**
 * 预订页面Hook
 *
 * 管理预订页面的状态和业务逻辑
 *
 * @param props Hook属性
 * @returns 预订页面状态和操作方法
 */
declare function useBooking(_props?: UseBookingProps): {
    collections: CollectionSummary[];
    loading: boolean;
    error: string | undefined;
    submitting: boolean;
    submitted: boolean;
    loadCollections: () => Promise<void>;
    submitBooking: (formData: BookingFormData) => Promise<void>;
    resetSubmission: () => void;
    clearError: () => void;
};
/**
 * 预订表单Hook
 *
 * 管理预订表单的状态和验证
 *
 * @returns 表单状态和操作方法
 */
declare function useBookingForm(): {
    formData: BookingFormData;
    errors: Partial<Record<keyof BookingFormData, string>>;
    updateField: (field: keyof BookingFormData, value: any) => void;
    validateForm: () => boolean;
    resetForm: () => void;
};

/**
 * ShowMasterpiece 模块 - 预订管理Hook
 *
 * 提供预订管理功能的状态管理和数据获取逻辑，包括：
 * - 获取所有预订数据
 * - 预订统计信息
 * - 状态更新
 * - 加载和错误状态管理
 * - 用户搜索功能
 *
 * @fileoverview 预订管理Hook
 */

/**
 * 预订管理Hook返回值类型
 */
interface UseBookingAdminReturn {
    /** 预订数据列表 */
    bookings: BookingAdminData[];
    /** 统计信息 */
    stats: BookingAdminStats;
    /** 加载状态 */
    loading: boolean;
    /** 错误信息 */
    error?: string;
    /** 搜索参数 */
    searchParams: BookingAdminQueryParams;
    /** 刷新数据 */
    refreshData: () => Promise<void>;
    /** 搜索预订数据 */
    searchBookings: (params: BookingAdminQueryParams) => Promise<void>;
    /** 清除搜索条件 */
    clearSearch: () => void;
    /** 更新预订状态 */
    updateBookingStatus: (id: number, status: BookingStatus, adminNotes?: string) => Promise<void>;
    /** 删除预订 */
    deleteBooking: (id: number) => Promise<void>;
    /** 导出预订数据 */
    exportBookings: (format?: 'csv' | 'excel') => Promise<void>;
    /** 清除错误 */
    clearError: () => void;
}
/**
 * 预订管理Hook
 *
 * 提供预订管理功能的状态管理和数据获取逻辑
 *
 * @returns 预订管理Hook返回值
 */
declare const useBookingAdmin: () => UseBookingAdminReturn;

/**
 * ShowMasterpiece 模块 - 限时弹窗Hook
 *
 * 管理限时弹窗的显示逻辑
 *
 * @fileoverview 限时弹窗Hook
 */

/**
 * 限时弹窗Hook
 */
declare function useDeadlinePopup(businessModule?: string, businessScene?: string): {
    checkPopups: (currentTime?: Date) => Promise<PopupConfig[]>;
    closePopup: (configId: string) => void;
    confirmPopup: (configId: string) => void;
    cancelPopup: (configId: string) => void;
    temporaryClosePopup: (configId: string) => void;
    resetDismissedPopups: () => void;
    triggerCheck: (currentTime?: Date) => Promise<PopupConfig[]>;
    /** 需要显示的弹窗配置 */
    configs: PopupConfig[];
    /** 是否正在加载 */
    loading: boolean;
    /** 错误信息 */
    error: string | null;
    /** 是否有弹窗显示 */
    hasPopup: boolean;
};

/**
 * ShowMasterpiece 模块 - 购物车上下文Hook
 *
 * 提供购物车上下文状态的访问Hook，用于在组件中获取购物车相关的状态和操作。
 * 这个Hook必须在CartProvider包装的组件内使用。
 *
 * 主要功能：
 * - 获取购物车数据
 * - 获取加载状态
 * - 获取错误信息
 * - 提供刷新购物车的方法
 *
 * @fileoverview 购物车上下文Hook
 */

/**
 * 使用购物车上下文Hook
 *
 * 这个Hook用于在组件中访问购物车上下文状态。
 * 必须在CartProvider包装的组件内使用，否则会抛出错误。
 *
 * @returns 购物车上下文状态，包含购物车数据、加载状态、错误信息和刷新方法
 * @throws {Error} 当在CartProvider外部使用时抛出错误
 *
 * @example
 * ```tsx
 * function CartButton() {
 *   const { cart, loading, error, refreshCart } = useCartContext();
 *
 *   if (loading) return <div>加载中...</div>;
 *   if (error) return <div>错误: {error}</div>;
 *
 *   return (
 *     <button onClick={refreshCart}>
 *       购物车 ({cart.totalQuantity})
 *     </button>
 *   );
 * }
 * ```
 */
declare const useCartContext: () => CartContextState;

/**
 * ShowMasterpiece 模块 - 购物车上下文
 *
 * 提供购物车状态的全局管理，包括：
 * - 购物车数据状态
 * - 购物车数据刷新
 * - 购物车更新通知
 *
 * @fileoverview 购物车上下文
 */

/**
 * 购物车上下文提供者属性
 */
interface CartProviderProps {
    children: ReactNode;
    userId: number;
}
/**
 * 购物车上下文提供者组件
 *
 * @param props 组件属性
 * @returns React组件
 */
declare const CartProvider: React.FC<CartProviderProps>;

export { CART_UPDATE_EVENT, CartProvider, cartUpdateEvents, notifyCartUpdate, useBooking, useBookingAdmin, useBookingForm, useCart, useCartContext, useDeadlinePopup, useMasterpieces, useMasterpiecesConfig };
