import type { DiscountKeyboardValueState } from '../../../../pro/priceKeyboard/components/discountKeyboard/types'; import type { AdjustTimeProduct } from '../types'; import type { AdjustTimeActionKey } from '../components/AdjustTimeActionList'; export declare const ADJUST_TIME_PREFERENCES_KEY = "pisell.adjust-time.modal-preferences"; /** * 加时弹窗的本地偏好使用浏览器级缓存: * 只记录用户最近一次的操作习惯,不和单个 booking 绑定。 */ export interface AdjustTimeActionAvailability { canProductAddTime: boolean; canManualAddTime: boolean; canPayOvertime: boolean; canRestart: boolean; } export interface AdjustTimeModalPreferences { action?: AdjustTimeActionKey; /** Manual Add time 的结束时间,HH:mm。 */ manualEndTime?: string; priceAction?: AdjustTimeActionKey; priceInputState?: DiscountKeyboardValueState; /** Amount Due 展示金额仅作历史记录;再次打开时不直接套用,需用户确认键盘后生效。 */ dueAmount?: number; /** 保存前二次确认的本地偏好;true 表示下次点击 Save 直接保存。 */ skipSaveConfirm?: boolean; } /** * 从 localStorage 读取时做一次轻量校验,避免旧版本缓存或手动改坏的数据 * 直接影响弹窗初始化。 */ export declare const readAdjustTimePreferences: () => AdjustTimeModalPreferences | undefined; export declare const writeAdjustTimePreferences: (preferences: AdjustTimeModalPreferences) => void; /** 单独写入保存确认偏好,避免影响用户最近一次加时方式和价格键盘草稿。 */ export declare const writeAdjustTimeSkipSaveConfirm: (skipSaveConfirm: boolean) => void; /** * 恢复左侧 action 时必须重新校验当前可用性: * 商品可能已下架,restart/manual/pay overtime 也可能因当前时间变化而不可用。 */ export declare const resolvePersistedAdjustTimeAction: (action: AdjustTimeActionKey | undefined, products: AdjustTimeProduct[], availability: AdjustTimeActionAvailability) => AdjustTimeActionKey; /** 只恢复折扣键盘里的草稿选项和数字,不恢复右侧 Amount Due 的显示金额。 */ export declare const resolvePersistedPriceInputState: (preferences: AdjustTimeModalPreferences | undefined, action: AdjustTimeActionKey) => DiscountKeyboardValueState | undefined;