import type { GlyphSampleContext, GlyphSampler } from "./index.js";

export type GlyphId =
  | "idle"
  | "listening"
  | "thinking"
  | "thinking-deep"
  | "still-working"
  | "loading"
  | "progress"
  | "generating"
  | "searching"
  | "tool-use"
  | "speaking"
  | "awaiting-input"
  | "success"
  | "warning"
  | "error"
  | "paused"
  | "cancelled"
  | "offline"
  | "transfer"
  | "handoff"
  | "celebration"
  | "custom";

export const GLYPHS: Readonly<Record<GlyphId, GlyphSampler>>;
export const GLYPH_IDS: readonly GlyphId[];
export const GLYPH_ALIASES: Readonly<Record<string, GlyphId>>;
export function resolveGlyphId(id: unknown): GlyphId;
export function getGlyph(id: unknown): GlyphSampler;
export function listGlyphs(): readonly GlyphId[];
export function gestaltArcSupport(
  angle: number,
  context?: GlyphSampleContext,
  openness?: number,
): number;
export function sampleGlyph(
  id: unknown,
  x: number,
  y: number,
  time?: number,
  context?: GlyphSampleContext,
): number;

export default GLYPHS;
