import type { PalaceFact } from '../../types/analysis'; import type { ChartInput } from '../../types/chart'; import type { IztroAstrolabe, IztroHoroscope } from '../../types/iztro'; export type DecadalTimelineOption = { kind: 'childhood' | 'decadal'; label: string; startAge: number; endAge: number; dateStr: string; endDateStr?: string; palaceIndex?: number; palaceName?: string; source: 'payload-compatibility' | 'iztro-horoscope'; }; type VerifiedSelectedAgeHoroscope = { age: number; dateStr: string; hourIndex: number; horoscope: IztroHoroscope; }; export type VerifiedDecadalTimelineBatch = { /** 本批实际涉及且已经过 iztro 运限对象核验的阶段。 */ periods: Array<{ periodIndex: number; period: DecadalTimelineOption; /** 本页所选年龄年的真实对象;仅供同次计算复用,不表示阶段起点对象。 */ selectedAgeHoroscope?: VerifiedSelectedAgeHoroscope; }>; /** 只含年龄与阶段位置的全局索引,不伪造未计算阶段的日期。 */ selectedAgeYears: Array<{ periodIndex: number; age: number; }>; targetPeriodIndex: number; batch: { unit: 'age-year'; totalYears: number; startIndex: number; endIndexExclusive: number; nextIndex: number | null; }; }; export type ZiweiHoroscopeResolver = (dateStr: string, hourIndex: number) => Promise; /** 同一次计算内按日期和时辰复用运限对象;不会跨请求保留出生盘状态。 */ export declare function createZiweiHoroscopeResolver(astrolabe: IztroAstrolabe, input: ChartInput): ZiweiHoroscopeResolver; export declare function getChildhoodAgeRange(palaces: PalaceFact[]): [number, number] | null; export declare function buildDecadalTimelineOptions(palaces: PalaceFact[], birthSolarDate: string): DecadalTimelineOption[]; /** * iztro normal 口径的虚岁只取出生与目标日期的农历年差并加一。 * 这里复用星盘内已经确定的出生农历年,不生成目标时刻的完整运限对象。 */ export declare function calculateNormalZiweiNominalAge(astrolabe: IztroAstrolabe, dateStr: string, hourIndex: number): number; export declare function buildVerifiedDecadalTimelineOptions(astrolabe: IztroAstrolabe, input: ChartInput, resolveHoroscope?: ZiweiHoroscopeResolver): Promise; /** * 年龄年独立批次只验证本批实际涉及的童限或大限,并保留其精确起止边界。 * 其余条目仅用于稳定年龄索引,不会进入返回结果。 */ export declare function buildVerifiedDecadalTimelineBatchOptions(astrolabe: IztroAstrolabe, input: ChartInput, options: { scope: 'all' | 'current'; targetAge: number; batch: { startIndex?: number; limit?: number; }; /** normal/all 事实页可用本页年龄年的真实对象同时核验阶段并生成阶段层。 */ selectedAgeHoroscopeHourIndex?: number; }, resolveHoroscope?: ZiweiHoroscopeResolver): Promise; export declare function findCurrentDecadalOption(options: DecadalTimelineOption[], nominalAge: number): DecadalTimelineOption | null; export declare function formatDecadalAgeRange(option: { startAge: number; endAge: number; }): string; export {};