/** * File-Based Experiment Type * * Shared interface for experiments that exist as Svelte component files * rather than database entries. Used by both .io and .space. * * DRY: Single source of truth for experiment metadata. * * ASCII Art Visual Dialects: * -------------------------- * .space (Practice) uses simple ASCII: +-| * → Portable, terminal-friendly, emphasizes simplicity * * .io (Research) uses Unicode box-drawing: ╔═╗║╚╝┌─┐│└┘ * → Richer visual, publication-quality, emphasizes rigor * * This distinction is intentional: each property speaks * in a visual register appropriate to its purpose. */ export interface FileBasedExperiment { id: string; slug: string; title: string; description: string; excerpt_short: string; excerpt_long: string; category: string; tags: string[]; created_at: string; updated_at: string; reading_time_minutes: number; difficulty: 'beginner' | 'intermediate' | 'advanced'; is_file_based: true; is_executable?: 0 | 1; ascii_art?: string; tests_principles?: string[]; route?: string; } /** * Transform a FileBasedExperiment to match Paper interface fields */ export declare function transformExperimentToPaper(exp: FileBasedExperiment): { reading_time: number; published_at: string; difficulty_level: "beginner" | "intermediate" | "advanced"; published: number; is_hidden: number; archived: number; route: string; id: string; slug: string; title: string; description: string; excerpt_short: string; excerpt_long: string; category: string; tags: string[]; created_at: string; updated_at: string; reading_time_minutes: number; difficulty: "beginner" | "intermediate" | "advanced"; is_file_based: true; is_executable?: 0 | 1; ascii_art?: string; tests_principles?: string[]; }; /** * File-Based Research Paper Type * * Formal academic research papers that provide theoretical grounding. * Distinguished from experiments by their mode of Being: * - Papers = Vorhandenheit (present-at-hand) - theoretical analysis * - Experiments = Zuhandenheit (ready-to-hand) - practical demonstration * * Both contribute to the hermeneutic circle, but in different ways: * - Papers DESCRIBE the circle (detached observation) * - Experiments DEMONSTRATE the circle (absorbed engagement) */ export interface FileBasedPaper { id: string; slug: string; title: string; subtitle?: string; authors: string[]; abstract: string; keywords: string[]; description: string; excerpt_short: string; excerpt_long: string; category: 'research' | 'methodology' | 'case-study' | 'white-paper'; created_at: string; updated_at: string; reading_time_minutes: number; difficulty: 'intermediate' | 'advanced'; is_file_based: true; tests_principles: string[]; related_experiments?: string[]; source_path: string; ascii_art?: string; } /** * Transform a FileBasedPaper to match Paper interface fields */ export declare function transformResearchPaperToPaper(paper: FileBasedPaper): { tags: { id: string; name: string; slug: string; }[]; reading_time: number; published_at: string; difficulty_level: "intermediate" | "advanced"; published: number; is_hidden: number; archived: number; route: string; id: string; slug: string; title: string; subtitle?: string; authors: string[]; abstract: string; keywords: string[]; description: string; excerpt_short: string; excerpt_long: string; category: "research" | "methodology" | "case-study" | "white-paper"; created_at: string; updated_at: string; reading_time_minutes: number; difficulty: "intermediate" | "advanced"; is_file_based: true; tests_principles: string[]; related_experiments?: string[]; source_path: string; ascii_art?: string; };