import type { Locale } from "@/i18n/config"; export type ChangelogIllustrationName = | "shield" | "board" | "assistant" | "pages" | "connections" | "activity" | "desktop" | "smart-fill" | "smart-assign" | "microphone" | "relations" | "pull-request" | "tabs" | "triage" | "providers" | "performance" | "merge" | "deadline"; export type ChangelogIllustration = | { kind: "code"; name: ChangelogIllustrationName } | { kind: "icon"; name: ChangelogIllustrationName } | { kind: "image"; url: string; width: number; height: number }; export interface FeatureCopy { title: string; summary: string; details: string[]; } export interface ChangelogFeature { id: string; illustration: ChangelogIllustration; copy: Record; } export interface ChangelogDraft { version: string; layout: "compact" | "bento"; copy: Record; features: ChangelogFeature[]; evidence: { commits: string[]; issues: string[] }; } export interface ChangelogRelease extends ChangelogDraft { publishedAt: string; sha: string; deploymentId: number; } export type ChangelogIndexEntry = Pick & { featureIds: string[] }; export interface ChangelogFeatureSummary { id: string; title: string; illustration: ChangelogIllustration; details: string[]; } export interface ChangelogReleaseSummary { version: string; publishedAt: string; layout: "compact" | "bento"; title: string; summary: string; features: ChangelogFeatureSummary[]; } export interface ChangelogPageContent { releases: ChangelogReleaseSummary[]; next: string | null; } export interface ChangelogFeatureDetail extends ChangelogFeatureSummary { version: string; } export interface ChangelogLabels { more: string; loading: string; error: string; retry: string; details: string; }