/** * @file 玄空飞星 * @description 三元九运、下卦与兼向替卦山向飞星、流年流月紫白叠宫、局型组合与结构化证据。 * @传统依据 玄空飞星通行的三元九运、运盘顺飞、元龙阴阳定山向盘顺逆、中央九度与兼向替星口径;流年流月取三元紫白入中后顺飞。 * 不做形峦、玄空大卦或吉凶总分。 */ import { type Formation } from '@soul-atelier/xuankong'; import { type XuanKongEvidenceAnalysis } from './evidence'; import { evaluateCastleGate, type CastleGateEvaluation } from './castle-gate'; import { flyStars, resolveFlyingStarYunState, resolveShanXiangRelation, resolveMonthFlyingStar, resolveXuanKongFlowStars, resolveYearFlyingStar, type FlyingStarYunState, type ShanXiangRelation, type XuanKongFlowStars } from './period-stars'; export { evaluateCastleGate, flyStars, resolveFlyingStarYunState, resolveMonthFlyingStar, resolveShanXiangRelation, resolveXuanKongFlowStars, resolveYearFlyingStar, }; export type { FlyDirection, FlyingStarYunState, ShanXiangRelation, XuanKongFlowStars, } from './period-stars'; export type { CastleGateCandidate, CastleGateEvaluation } from './castle-gate'; /** * 蒋大鸿《地理辨正》、沈氏玄空学通行二十四山替卦(起星)诀。 * “子癸并甲申,贪狼一路行;壬卯乙未坤,五位为巨门; * 乾亥辰巽巳,连戌武曲名;酉辛丑艮丙,天星说破军; * 寅午庚丁上,右弼四星临。” */ export declare const SUBSTITUTE_STAR_POEM = "\u5B50\u7678\u5E76\u7532\u7533\uFF0C\u8D2A\u72FC\u4E00\u8DEF\u884C\uFF1B\u58EC\u536F\u4E59\u672A\u5764\uFF0C\u4E94\u4F4D\u4E3A\u5DE8\u95E8\uFF1B\u4E7E\u4EA5\u8FB0\u5DFD\u5DF3\uFF0C\u8FDE\u620C\u6B66\u66F2\u540D\uFF1B\u9149\u8F9B\u4E11\u826E\u4E19\uFF0C\u5929\u661F\u8BF4\u7834\u519B\uFF1B\u5BC5\u5348\u5E9A\u4E01\u4E0A\uFF0C\u53F3\u5F3C\u56DB\u661F\u4E34\u3002"; export declare const TWENTY_FOUR_MOUNTAIN_SUBSTITUTES: Readonly>; export type XuanKongGuaType = '下卦' | '替卦'; export type XuanKongFormation = Formation | '替卦未成四正局' | '替卦到山到向未成旺局'; export interface XuanKongPeriod { year: number; yuan: '上元' | '中元' | '下元'; yun: number; yunStar: number; /** 民用年区间;负数表示公元前年份的负值,正数表示公元年,不使用0。 */ startYear: number; endYear: number; label: string; boundaryStatus?: '待核定'; /** 交运首年只有公历年份、没有建造或起运日期时的定运边界说明。 */ boundaryNote?: string; } export type XuanKongMeasurementBoundaryReason = '二十四山分界' | '中央九度分界'; export interface XuanKongMeasurement { facingDegree?: number; sitDegree?: number; stability: '稳定' | '山向边界敏感'; /** 测量误差半径;与边界原因一起说明当前山向是否可直接定盘。 */ uncertaintyDegrees: number; /** 到二十四山边界的距离;与中央九度边界距离分开记录。 */ nearestBoundaryDistanceDegrees?: number; /** 到中央九度(下卦/兼向)分界的距离。 */ nearestCentralNineBoundaryDistanceDegrees?: number; /** 触发山向边界敏感的实际原因;兼向本身不属于边界。 */ boundaryReasons?: XuanKongMeasurementBoundaryReason[]; /** 两端度数均位于各山中央九度之外的兼向范围。 */ isJianXiang?: boolean; candidateMountains?: Array<{ sitMountain: string; facingMountain: string; label: string; }>; warnings: string[]; } export interface XuanKongInput { /** 住宅建造或起运公历年;交运首年无月日时,运期标为待核定。 */ year: number; sitMountain?: string; facingMountain?: string; facingDegree?: number; sitDegree?: number; measurementUncertaintyDegrees?: number; /** 默认下卦;仅在已核定兼向时显式传入替卦。 */ guaType?: XuanKongGuaType; /** 流年公元年;不传则只排宅盘,不排流年飞星 */ flowYear?: number; /** 流月公历月 1-12;须同时提供 flowYear */ flowMonth?: number; /** 流月日期;不传时按该月 15 日所属节气月 */ flowDay?: number; } export interface XuanKongPalace { gong: number; name: string; direction: string; yunStar: number; shanStar: number; xiangStar: number; yearStar?: number; monthStar?: number; shanXiangRelation: ShanXiangRelation; yunStarState: FlyingStarYunState; } export interface XuanKongCombination { name: string; kind: 'auspicious' | 'inauspicious'; palaces?: number[]; note: string; } export interface XuanKongResult { period: XuanKongPeriod; sitMountain: string; facingMountain: string; guaType: XuanKongGuaType; replacementApplied: boolean; replacementReason: string; plates: { yun: number[]; shan: number[]; xiang: number[]; year?: number[]; month?: number[]; }; flowStars?: XuanKongFlowStars; palaces: XuanKongPalace[]; formation: XuanKongFormation; combinations: XuanKongCombination[]; replacement?: { mountain: XuanKongReplacementLeg; facing: XuanKongReplacementLeg; rule: string; sourceUrl: string; verificationSourceUrl: string; }; engine: { name: '@soul-atelier/xuankong'; version: '0.2.1'; mode: '下卦'; } | { name: 'mingyu-core'; version: '替卦规则-v1'; mode: '替卦'; baseEngine: '@soul-atelier/xuankong@0.2.1'; }; daoShanXiang: { shanToMountain: boolean; xiangToFacing: boolean; summary: string; }; measurement?: XuanKongMeasurement; castleGate?: CastleGateEvaluation; evidenceAnalysis: XuanKongEvidenceAnalysis; prompt: string; } export interface XuanKongReplacementLeg { originalCenterStar: number; referenceMountain: string; replacementStar: number; direction: '顺飞' | '逆飞'; } export declare function resolveXuanKongPeriod(year: number): XuanKongPeriod; /** 独立校验住宅坐向;坐向与测量容差不依赖宅运年份。 */ export declare function resolveXuanKongOrientation(input: Pick): { sitMountain: string; facingMountain: string; measurement?: XuanKongMeasurement; }; export declare function generateXuanKong(input: XuanKongInput): XuanKongResult; export type { XuanKongEvidenceAnalysis };