/*
  UI-string dictionary shape (I18N_SPEC §2). Both locale files implement this
  interface, so a missing key is a compile error — never a runtime fallback.
  Keys are semantic, never English-sentence keys.
*/

export interface Dictionary {
  hero: {
    viewProjects: string;
  };
  home: {
    skillsLabel: string;
    skillsHeading: string;
    skillsIntro: string;
    projectsLabel: string;
    projectsHeading: string;
    experienceLabel: string;
    experienceHeading: string;
    aboutLabel: string;
    earlierRoles: string;
    present: string;
  };
  nav: {
    home: string;
    projects: string;
    experience: string;
    about: string;
    contact: string;
  };
  about: {
    languages: string;
    interests: string;
  };
  cvPage: {
    heading: string;
    intro: string;
    atsNote: string;
    updated: string;
  };
  lang: {
    /** aria-label for the switch group, phrased in the target language. */
    switchTo: string;
    en: string;
    no: string;
  };
  theme: {
    toLight: string;
    toDark: string;
  };
  cv: {
    download: string;
    english: string;
    norsk: string;
    /** e.g. "pdf · {size} kB" — {size} interpolated. */
    fileMeta: string;
  };
  project: {
    readCaseStudy: string;
    explore: string;
    all: string;
    caseStudyEyebrow: string;
    capabilityEyebrow: string;
    onThisPage: string;
    repository: string;
    liveDemo: string;
    prev: string;
    next: string;
    status: {
      active: string;
      'in-development': string;
      archived: string;
    };
    tldr: { what: string; why: string; stack: string; role: string };
  };
  form: {
    name: string;
    email: string;
    message: string;
    send: string;
    sending: string;
    successTitle: string;
    successBody: string;
    errorTitle: string;
    errorBody: string;
    required: string;
    invalidEmail: string;
    orEmail: string;
    copy: string;
    copied: string;
  };
  hint: {
    text: string;
    action: string;
    dismiss: string;
  };
  notFound: {
    code: string;
    title: string;
    body: string;
    home: string;
    projects: string;
  };
  a11y: {
    skipToContent: string;
    primaryNav: string;
    openMenu: string;
    closeMenu: string;
    breadcrumb: string;
    backToTop: string;
  };
  footer: {
    tagline: string;
    colophon: string;
    availability: string;
    /** {year} interpolated. */
    copyright: string;
  };
}
