import { MessageKey } from '../i18n'; import { Style } from '../core/types'; export type SwatchToken = 'red' | 'amber' | 'green' | 'teal' | 'blue' | 'indigo' | 'violet' | 'pink'; /** 토큰의 컨텍스트별 렌더값 (CSS 변수 참조 — 테마는 [data-theme]로 스왑) */ export interface SwatchRender { /** 엔티티 헤더 바 배경 */ bar: string; /** 헤더 바 위 텍스트 */ barOn: string; /** 속성 글자색 */ text: string; } /** 선택 가능한 8색 (중립 hue — 의미는 사용자가 부여) */ export declare const SWATCH_TOKENS: SwatchToken[]; /** * 임의 hex 색상을 가장 가까운 swatch 토큰으로 근사한다(hue 최단 원형거리). * 무채색(채도 < MIN_SATURATION)·파싱 실패는 null → 호출부가 기본 색 유지. * 레거시 임의 색상 표시 폴백 전용(데이터 변형 없음). */ export declare function approximateSwatchToken(hex: unknown): SwatchToken | null; /** * Style 에서 swatch 토큰을 안전하게 읽는다. * 토큰이 없으면 레거시 임의 hex를 가장 가까운 토큰으로 근사(표시 폴백): * 엔티티 헤더는 `background-color`, 속성 강조는 글자색 `font-color`(드물게 `color`)에 저장되므로 * 그 순서로 첫 유효 hex를 근사한다. 미지정·무채색이면 null. */ export declare function swatchTokenOf(style: Style | undefined): SwatchToken | null; /** 토큰 → 렌더값(CSS 변수 참조). 미지정/미지 토큰이면 null → 호출부가 기본 색 유지. */ export declare function resolveSwatch(token: SwatchToken | null): SwatchRender | null; /** * 미니맵 노드 fill 색 — 지정 swatch가 있으면 그 색(그룹은 반투명), 없으면 null → 호출부가 기본색 유지. * @param soft 그룹처럼 반투명 칠이 필요하면 true. */ export declare function swatchMinimapFill(token: SwatchToken | null, soft?: boolean): string | null; /** 피커 라벨 키 — 소비처가 `t(swatchLabelKey(token))`으로 로케일 렌더 */ export declare function swatchLabelKey(token: SwatchToken): MessageKey; /** 피커에 칠할 대표색 (바 색 — 피커도 [data-theme]에 따라 전환) */ export declare function swatchSwatchColor(token: SwatchToken): string;