import { SolarTime } from 'tyme4ts'; import { Person, BaziChartResult, BaziFortuneBatchMetadata, BaziUnknownTimeBatchMetadata, InternalBaziChartResult, LiunianInfo } from './baziTypes'; type SolarTimeInstance = ReturnType; export type BaziBatchCalculationRequest = { section: 'natal'; } | { section: 'fortune'; startIndex: number; }; export interface BaziBatchCalculationResult { result: BaziChartResult; batch?: BaziFortuneBatchMetadata; } export interface BaziUnknownTimeBatchRequest { startIndex: number; contextKey?: string; } export interface BaziUnknownTimeBatchResult { result: BaziChartResult; batch: BaziUnknownTimeBatchMetadata; } /** * 八字计算工具类 * 整合了所有计算逻辑 */ export declare class BaziCalculator { private timeMap; private shenShaCalculator; private analyzer; private luckCalculator; private wuxingCalculator; constructor(); /** * 获取天干的十神 * @param gan 天干 * @param dayMaster 日主 */ getTenGod(gan: string, dayMaster: string): string; /** * 获取地支的十神 (基于藏干主气) * @param zhi 地支 * @param dayMaster 日主 */ getTenGodForBranch(zhi: string, dayMaster: string): string; /** * 计算核心八字数据(同步) */ calculateCoreBazi(person: Person): InternalBaziChartResult; private calculateCoreBaziInternal; /** * 统一计算八字所有数据 */ calculateBazi(person: Person): BaziChartResult; calculateBaziBatch(person: Person, request: BaziBatchCalculationRequest): BaziBatchCalculationResult; calculateBaziUnknownTimeBatch(person: Person, request: BaziUnknownTimeBatchRequest): BaziUnknownTimeBatchResult; private calculateBaziInternal; /** * 计算扩展八字数据(异步) */ private calculateExtendedBazi; calculateLiuyue(year: number, month: number, dayMaster: string): import("./baziCalculatorTime").LiuyueInfo; calculateLiuri(year: number, month: number, day: number, dayMaster: string): import("./baziCalculatorTime").LiuriInfo; calculateLiuriRange(startDate: string, endDate: string, dayMaster: string): import("./baziCalculatorTime").LiuriInfo[]; calculateSeasonInfo(solarTime: SolarTimeInstance): import("./baziTypes").SeasonInfo; /** * 计算并分类流年神煞 */ getCategorizedYearShenSha(yearData: Pick | null | undefined, baziResult: BaziChartResult): { lucky: string[]; unlucky: string[]; neutral: string[]; }; private getTimeInfoFromClock; private flattenLiunian; } export declare const baziCalculator: BaziCalculator; export default baziCalculator;