import type { Element, ElementLabel } from "../core/ten-gods"; import type { Label } from "../types"; export declare const RELATION_TYPE_KEYS: readonly ["stemCombination", "stemClash", "sixCombination", "halfCombination", "tripleCombination", "directionalCombination", "clash", "harm", "punishment", "destruction"]; export type RelationTypeKey = (typeof RELATION_TYPE_KEYS)[number]; export interface RelationTypeLabel extends Label { } export declare function getRelationTypeLabel(key: RelationTypeKey): RelationTypeLabel; export declare const TRANSFORMATION_STATUS_KEYS: readonly ["combined", "halfCombined", "transformed", "notTransformed"]; export type TransformationStatusKey = (typeof TRANSFORMATION_STATUS_KEYS)[number]; export interface TransformationStatusLabel extends Label { } export declare function getTransformationStatusLabel(key: TransformationStatusKey): TransformationStatusLabel; export declare const PUNISHMENT_TYPE_KEYS: readonly ["ungrateful", "power", "rude", "self"]; export type PunishmentTypeKey = (typeof PUNISHMENT_TYPE_KEYS)[number]; export interface PunishmentTypeLabel extends Label { } export declare function getPunishmentTypeLabel(key: PunishmentTypeKey): PunishmentTypeLabel; export type StemCombinationResult = { stems: [string, string]; resultElement: Element; }; export declare const STEM_COMBINATIONS: StemCombinationResult[]; export declare const STEM_CLASHES: [string, string][]; export type BranchCombinationResult = { branches: [string, string]; resultElement: Element; }; export declare const BRANCH_SIX_COMBINATIONS: BranchCombinationResult[]; export type HalfCombinationResult = { branches: [string, string]; resultElement: Element; }; export declare const BRANCH_HALF_COMBINATIONS: HalfCombinationResult[]; export type TripleCombinationResult = { branches: [string, string, string]; resultElement: Element; }; export declare const BRANCH_TRIPLE_COMBINATIONS: TripleCombinationResult[]; export declare const BRANCH_DIRECTIONAL_COMBINATIONS: TripleCombinationResult[]; export declare const BRANCH_CLASHES: [string, string][]; export declare const BRANCH_HARMS: [string, string][]; export declare const BRANCH_PUNISHMENTS: { branches: string[]; type: PunishmentTypeKey; }[]; export declare const BRANCH_DESTRUCTIONS: [string, string][]; export interface StemCombination { type: RelationTypeLabel; pair: [string, string]; positions: [string, string]; resultElement: ElementLabel; transformStatus: TransformationStatusLabel; transformReason: string; } export interface StemClash { type: RelationTypeLabel; pair: [string, string]; positions: [string, string]; } export interface BranchSixCombination { type: RelationTypeLabel; pair: [string, string]; positions: [string, string]; resultElement: ElementLabel; transformStatus: TransformationStatusLabel; transformReason: string; } export interface BranchHalfCombination { type: RelationTypeLabel; pair: [string, string]; positions: [string, string]; resultElement: ElementLabel; } export interface BranchTripleCombination { type: RelationTypeLabel; branches: string[]; positions: string[]; resultElement: ElementLabel; isComplete: boolean; transformStatus: TransformationStatusLabel; transformReason: string; } export interface BranchDirectionalCombination { type: RelationTypeLabel; branches: string[]; positions: string[]; resultElement: ElementLabel; isComplete: boolean; transformStatus: TransformationStatusLabel; transformReason: string; } export interface BranchClash { type: RelationTypeLabel; pair: [string, string]; positions: [string, string]; } export interface BranchHarm { type: RelationTypeLabel; pair: [string, string]; positions: [string, string]; } export interface BranchPunishment { type: RelationTypeLabel; branches: string[]; positions: string[]; punishmentType: PunishmentTypeLabel; } export interface BranchDestruction { type: RelationTypeLabel; pair: [string, string]; positions: [string, string]; } export type Relation = StemCombination | StemClash | BranchSixCombination | BranchHalfCombination | BranchTripleCombination | BranchDirectionalCombination | BranchClash | BranchHarm | BranchPunishment | BranchDestruction; export interface RelationsResult { combinations: (StemCombination | BranchSixCombination | BranchHalfCombination | BranchTripleCombination | BranchDirectionalCombination)[]; stemClashes: StemClash[]; clashes: BranchClash[]; harms: BranchHarm[]; punishments: BranchPunishment[]; destructions: BranchDestruction[]; all: Relation[]; } export declare function analyzeRelations(yearPillar: string, monthPillar: string, dayPillar: string, hourPillar: string): RelationsResult; export declare function findStemCombination(stem1: string, stem2: string): StemCombinationResult | null; export declare function findBranchClash(branch1: string, branch2: string): boolean; export declare function findBranchSixCombination(branch1: string, branch2: string): BranchCombinationResult | null; //# sourceMappingURL=relations.d.ts.map