/** ProductCard Time 组件所需的 holder 展示字段 */
export interface CartHolderParams {
    holder_id?: number;
    isErrorHolder?: boolean;
    isShowChangeHolder?: boolean;
    addHolderButtonText?: string;
    holder_title?: string;
    holders?: Array<{
        id: any;
        label: any;
        [key: string]: any;
    }>;
}
export interface BuildCartHolderParamsOptions {
    /** 购物车行数据 */
    item: any;
    /** holder 配置，通常来自 item._productInit.holder_config 或 item._origin.product.holder_config */
    holderConfig?: Record<string, any>;
    /** getHolderFormMap 中对应 resource_id 的表单数据 */
    formData?: Record<string, any>;
    /** 多语言翻译函数 */
    translation: (value: any) => string;
    /** 是否注入 holder 字段，由业务侧决定（如预约商品 / 含 duration 的场地商品） */
    enabled?: boolean;
    utils?: any;
}
declare type HolderFormRecord = Record<string, any>;
/**
 * holder_config 是否已开启。
 * status 非 enable（如 disable）时，required、resource_id 视为脏数据，不参与校验与展示。
 */
export declare const isHolderConfigEnabled: (holderConfig?: Record<string, any>) => boolean;
/**
 * 从购物车行解析当前选中的 holder form_record_id。
 *
 * venueBooking：以 _origin.holder 为准（SDK 会原地更新 form_record）；
 * 顶层 item.holder_id 可能是上一轮 UI 注入或 SDK 回灌的滞后值，不能优先于 _origin.holder。
 */
export declare const resolveCartItemHolderId: (item: any) => number | undefined;
/**
 * 构建 ProductCard Holder 组件使用的单条 holder 数据。
 * 输出字段需要与购物车 ProductCard 消费格式保持一致。
 */
export declare const buildCartHolderOption: (holder: HolderFormRecord, utils: any) => {};
/**
 * 根据 holderMap 与购物车行数据，构建 ProductCard 所需的 holder 展示字段。
 * 供 appointmentBooking、venueBooking 等购物车场景复用。
 */
export declare const buildCartHolderParams: ({ item, holderConfig, formData, translation, enabled, utils, }: BuildCartHolderParamsOptions) => CartHolderParams;
/**
 * 从 appointmentBooking 购物车行读取 holder_config
 */
export declare const getAppointmentCartHolderConfig: (item: any) => any;
/**
 * 从 venueBooking 购物车行读取 holder_config
 */
export declare const getVenueCartHolderConfig: (item: any) => any;
export interface ValidateRequiredCartHoldersOptions {
    items?: any[];
    getHolderConfig?: (item: any) => Record<string, any>;
    /** 是否校验该行，默认全部校验 */
    shouldValidateItem?: (item: any) => boolean;
}
/**
 * 校验购物车中 holder_config.required 的行是否已选择 holder。
 */
export declare const validateRequiredCartHolders: ({ items, getHolderConfig, }: ValidateRequiredCartHoldersOptions) => {
    hasError: boolean;
    invalidItems: any[];
};
export interface CartHolderFormModule {
    appendFormRecord?: (params: {
        record: any;
    }) => void;
    refreshAllHolderFormRecords?: (params: {
        customer_id?: any;
    }) => void;
}
export interface HandleCartHolderFormSuccessOptions {
    res: any;
    formId?: number | string;
    skuRelationFormId: number;
    utils: any;
    module: CartHolderFormModule;
}
export interface CartHolderFormSuccessResult {
    formRecordId: any;
    mainField: any;
    formId: any;
}
/**
 * 从 holderMap 解析 minors 表单关联的 sku 关系表单 ID（form_to_form 隐藏字段的 linkedTable）。
 */
export declare const getSkuRelationFormId: (holderMap: Record<string, any>, formId?: number | string) => number;
/**
 * 从 form_to_form_value 中取最新创建的 form_record_id。
 */
export declare const getSkuRelationFormRecordId: (res: any) => any;
/**
 * 处理购物车添加 holder 表单提交成功后的公共逻辑。
 * - minors 关联表单：刷新 holder 列表，取 form_to_form_value 中的 record id
 * - 普通表单：appendFormRecord 并直接使用 form_record_id
 */
export declare const handleCartHolderFormSuccess: ({ res, formId, skuRelationFormId, utils, module, }: HandleCartHolderFormSuccessOptions) => CartHolderFormSuccessResult;
export {};
