import type { SalesSdkHolderOption } from './formatHolderOptions';
export interface ApplyHolderToCacheItemOptions {
    bookingConfig?: Record<string, any> | null;
    customerId?: number | string | null;
    isFranchisee?: boolean;
    holderOptions?: SalesSdkHolderOption[];
}
/**
 * 将 Holder 选择值归一为老 ticketBooking `form_record` 需要的数组。
 *
 * @example
 * const ids = normalizeSelectedHolderIds(12);
 */
export declare function normalizeSelectedHolderIds(holderIds: unknown): Array<number | string>;
/**
 * 读取老 ticketBooking holder 协议所需的 form_id。
 *
 * @example
 * const formId = resolveHolderFormId(bookingConfig);
 */
export declare function resolveHolderFormId(bookingConfig?: Record<string, any> | null): number | string;
/**
 * 按 holder id 顺序从 Holder 字典中解析主字段展示名。
 *
 * @example
 * const name = resolveHolderName([1, 2], [{ id: 1, label: 'Tom' }, { id: 2, label: 'Jerry' }]);
 */
export declare function resolveHolderName(holderIds: unknown, holderOptions?: SalesSdkHolderOption[]): string | undefined;
/**
 * 按老 ticketBooking `formatHolders` 生成单个 booking 的 holder。
 *
 * @example
 * const holder = buildBookingHolder([12], { bookingConfig, customerId: 8 });
 */
export declare function buildBookingHolder(holderIds: unknown, options?: ApplyHolderToCacheItemOptions): Record<string, any>;
/**
 * 将 Holder 选择结果写入 cacheItem._extend.holder_id / holder。
 *
 * @example
 * const next = applyHolderToCacheItem(cacheItem, [12], { bookingConfig, customerId: 8 });
 */
export declare function applyHolderToCacheItem(cacheItem: any, holderIds: unknown, options?: ApplyHolderToCacheItemOptions): any;
