import { SolarTime, ChildLimit } from 'tyme4ts'; import type { BaziFortuneBatchMetadata, LuckInfo } from './baziTypes'; type SolarTimeInstance = ReturnType; type LuckGender = Parameters[1]; type EightCharInstance = ReturnType['getEightChar']>; export interface LuckInfoBatchResult { luckInfo: LuckInfo; batch: BaziFortuneBatchMetadata; } /** * 专注于大运、小运、流年等运势计算的工具类 * * 基于 tyme4ts 提供的 ChildLimit / DecadeFortune / Fortune 结果, * 统一生成起运时间、大运排布与逐年小运,避免手推公式与官方实现偏离。 */ export declare class LuckCalculator { /** * 主计算函数:计算大运、小运和所有关联的流年信息 */ calculateLuckInfo(solarTime: SolarTimeInstance, gender: LuckGender, dayMaster: string, termSolarTime?: SolarTimeInstance, eightChar?: EightCharInstance): LuckInfo; /** 仅计算本命批次仍需展示的起运资料,不构造任何大运流年。 */ calculateNatalLuckInfo(solarTime: SolarTimeInstance, gender: LuckGender, dayMaster: string, termSolarTime?: SolarTimeInstance, eightChar?: EightCharInstance): LuckInfo; /** 按全局逐年游标仅构造本次所属周期及一个流年。 */ calculateLuckInfoBatch(solarTime: SolarTimeInstance, gender: LuckGender, dayMaster: string, startIndex: number, termSolarTime?: SolarTimeInstance, eightChar?: EightCharInstance): LuckInfoBatchResult; private createLuckPlan; private createLuckStartContext; private calculateLiunianAtOffset; /** * 为单个大运周期(10年)计算所有流年信息 */ private calculateLiunianForCycle; private getLiunianAge; private getXiaoyunForAge; private attachResolvedYears; /** * 计算流年 */ private calculateLiunian; /** * 流年按立春换年,而大运的公开 year 字段仍保留交运时刻的公历年。 * 交运落在立春前时,周期的第一段实际属于上一干支年,必须从该年生成 * 流年,否则当前日期会落在大运时间范围内却没有可选流年。 */ private getBaziYearAt; /** * 获取交运信息 * 根据起运月份推算交运时机 */ private getHandoverInfo; private hasPositiveSolarRange; private getCycleCalendarYearRange; private getLastBaziYearInHalfOpenRange; private isLichunBoundary; private getStartInfoText; } export {};