import { IFunctionalPalace } from '../../astro/FunctionalPalace';
import { EarthlyBranchName, HeavenlyStemName, PalaceName, StarName } from '../../i18n';
import FunctionalStar from '../../star/FunctionalStar';
import { Decadal } from './astro';
/**
 * 命宫、身宫对象
 *
 * @property
 * - soulIndex 命宫索引
 * - bodyIndex 身宫索引
 * - heavenlyStemOfSoul 命宫天干
 * - earthlyBranchOfSoul 命宫地支
 */
export type SoulAndBody = {
    /** 命宫索引 */
    soulIndex: number;
    /** 身宫索引 */
    bodyIndex: number;
    /** 命宫天干 */
    heavenlyStemOfSoul: HeavenlyStemName;
    /** 命宫地支 */
    earthlyBranchOfSoul: EarthlyBranchName;
};
/**
 * 宫位对象
 *
 * @property
 * - name 宫位名称
 * - isBodyPalace 是否身宫
 * - isOriginalPalace 是否来因宫
 * - heavenlyStem 宫位天干
 * - earthlyBranch 宫位地支
 * - majorStars 主星
 * - minorStars 辅星
 * - adjectiveStars 杂耀
 * - changsheng12 长生12神之一
 * - boshi12 博士12神之一
 * - jiangqian12 将前12神之一
 * - suiqian12 岁前12神之一
 * - decadal 大限
 * - ages 小限
 */
export type Palace = {
    /** 宫位索引 */
    index: number;
    /** 宫位名称 */
    name: PalaceName;
    /** 是否身宫 */
    isBodyPalace: boolean;
    /** 是否来因宫 */
    isOriginalPalace: boolean;
    /** 宫位天干 */
    heavenlyStem: HeavenlyStemName;
    /** 宫位地支 */
    earthlyBranch: EarthlyBranchName;
    /** 主星 */
    majorStars: FunctionalStar[];
    /** 辅星 */
    minorStars: FunctionalStar[];
    /** 杂耀 */
    adjectiveStars: FunctionalStar[];
    /** 长生12神 */
    changsheng12: StarName;
    /** 博士12神 */
    boshi12: StarName;
    /** 流年将前12神 */
    jiangqian12: StarName;
    /** 流年岁前12神 */
    suiqian12: StarName;
    /** 大限 */
    decadal: Decadal;
    /** 小限 */
    ages: number[];
};
/**
 * 三方四正宫位
 *
 * @property
 * - target 目标宫位
 * - career 三方位（官禄位）
 * - opposite 对宫
 * - wealth 三方位（财帛位）
 */
export type SurroundedPalaces = {
    /** 本宫 */
    target: IFunctionalPalace;
    /** 对宫 */
    opposite: IFunctionalPalace;
    /** 财帛位 */
    wealth: IFunctionalPalace;
    /** 官禄位 */
    career: IFunctionalPalace;
};
