/** * 统一提示词选择框架。 * * 方法决定采用哪一种盘面或占法,主题决定从资料中回答什么,细项和范围 * 进一步收窄任务。这里仅登记可用能力与任务组织规则,不替代任何排盘算法。 */ export declare const PROMPT_TOPIC_IDS: readonly ["general", "relationship", "career", "wealth", "health", "family", "academic", "timing"]; export type PromptTopicId = (typeof PROMPT_TOPIC_IDS)[number]; export type PromptSubtopicId = string; export declare const PROMPT_SCOPE_IDS: readonly ["natal", "full", "decadal", "yearly", "monthly", "daily", "hourly", "event", "date-range", "cycle", "custom"]; export type PromptScopeId = (typeof PROMPT_SCOPE_IDS)[number]; export type PromptMethodCategoryId = 'chart' | 'divination' | 'cards-signs' | 'timing-calendar' | 'fengshui' | 'name-number'; export declare const PROMPT_METHOD_IDS: readonly ["calendar.trueSolarBirth", "calendar.astronomicalTime", "calendar.moonPhase", "calendar.solarIllumination", "calendar.solarTerm", "bazi", "ziwei", "bazi-ziwei", "astrolabe", "astrolabe-synastry", "qimen-lifetime", "qizheng", "zodiac", "liuyao", "meihua", "xiaoliuren", "jinkoujue", "qimen", "liuren", "tarot", "lenormand", "ssgw", "zhuge", "kongming", "almanac", "taiyi", "wuyun-liuqi", "huangji-jingshi", "bazhai", "xuankong", "residential", "name.generation", "name.chineseAnalysis", "name.characterQuery", "name.numberEnergy", "name.zhugeDivination", "name.kongmingDivination"]; export type PromptMethodId = (typeof PROMPT_METHOD_IDS)[number]; export interface PromptOption { id: string; label: string; } export interface PromptMethodCapability { methodId: PromptMethodId; capabilityId?: string; categoryId: PromptMethodCategoryId; categoryLabel: string; methodLabel: string; topicIds: readonly PromptTopicId[]; subtopics: Partial>; scopeIds: readonly PromptScopeId[]; defaultScope: PromptScopeId; requiredFacts: readonly string[]; evidenceFields: readonly string[]; taskFields: readonly string[]; } export interface PromptSelection { methodId: PromptMethodId; categoryId: PromptMethodCategoryId; categoryLabel: string; methodLabel: string; topicId: PromptTopicId; topicLabel: string; subtopicId?: string; subtopicLabel?: string; scope: PromptScopeId; scopeLabel: string; source: 'default' | 'user' | 'legacy'; } export type PromptSelectionErrorCode = 'INVALID_METHOD' | 'INVALID_TOPIC' | 'UNSUPPORTED_TOPIC' | 'INVALID_SUBTOPIC' | 'UNSUPPORTED_SUBTOPIC' | 'INVALID_SCOPE' | 'UNSUPPORTED_SCOPE'; export interface PromptSelectionError { ok: false; code: PromptSelectionErrorCode; field: 'methodId' | 'topicId' | 'subtopicId' | 'scope'; value?: string; message: string; } export interface PromptSelectionSuccess { ok: true; selection: PromptSelection; } export type PromptSelectionResolution = PromptSelectionSuccess | PromptSelectionError; export declare const PROMPT_METHOD_CAPABILITIES: Record<"zodiac" | "liuyao" | "meihua" | "xiaoliuren" | "jinkoujue" | "qimen" | "liuren" | "taiyi" | "tarot" | "lenormand" | "ssgw" | "zhuge" | "kongming" | "almanac" | "astrolabe" | "bazi" | "ziwei" | "bazi-ziwei" | "astrolabe-synastry" | "qizheng" | "bazhai" | "xuankong" | "residential" | "wuyun-liuqi" | "huangji-jingshi" | "calendar.trueSolarBirth" | "calendar.astronomicalTime" | "calendar.moonPhase" | "calendar.solarIllumination" | "calendar.solarTerm" | "qimen-lifetime" | "name.generation" | "name.chineseAnalysis" | "name.characterQuery" | "name.numberEnergy" | "name.zhugeDivination" | "name.kongmingDivination", PromptMethodCapability>; export declare function getPromptMethodCapability(methodId: string): PromptMethodCapability | undefined; export declare function getPromptMethodCapabilities(): PromptMethodCapability[]; export declare function getPromptTopicOptions(methodId?: string): PromptOption[]; export declare function getPromptSubtopicOptions(topicId: string, methodId?: string): PromptOption[]; export declare function resolvePromptSelection(input: { methodId?: string | null; topicId?: string | null; subtopicId?: string | null; scope?: string | null; }): PromptSelectionResolution; export declare function requirePromptSelection(input: Parameters[0]): PromptSelection; export declare function getPromptSelectionSection(selection: PromptSelection): string; export declare function buildPromptSelectionTask(task: string, selection: PromptSelection): string; export declare function getPromptTopicLabel(topicId: string): string;