claude-presentation-master 5.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/cli.js CHANGED
@@ -20,7 +20,7 @@ const args = process.argv.slice(2);
20
20
 
21
21
  // Help text
22
22
  const helpText = `
23
- Claude Presentation Master v4.2.0
23
+ Claude Presentation Master v6.0.0
24
24
  Generate world-class presentations using expert methodologies
25
25
 
26
26
  100% FREE • Zero API Keys • Runs Locally
@@ -85,7 +85,7 @@ For more information: https://github.com/Stuinfla/claude-presentation-master
85
85
  `;
86
86
 
87
87
  // Version
88
- const version = '4.2.0';
88
+ const version = '6.0.0';
89
89
 
90
90
  // Parse arguments
91
91
  function parseArgs(args) {
package/dist/index.d.mts CHANGED
@@ -2,16 +2,19 @@
2
2
  * Claude Presentation Master - Type Definitions
3
3
  * @module types
4
4
  */
5
- type PresentationMode = 'keynote' | 'business';
5
+ type PresentationMode$1 = 'keynote' | 'business';
6
6
  type OutputFormat = 'html' | 'pptx';
7
7
  type ThemeName = 'default' | 'light-corporate' | 'modern-tech' | 'minimal' | 'warm' | 'creative';
8
+ type PresentationType$1 = 'ted_keynote' | 'sales_pitch' | 'consulting_deck' | 'investment_banking' | 'investor_pitch' | 'technical_presentation' | 'all_hands';
8
9
  interface PresentationConfig {
9
10
  /** Input content (Markdown, JSON, YAML, or plain text) */
10
11
  content: string;
11
12
  /** Content format */
12
13
  contentType: 'markdown' | 'json' | 'yaml' | 'text';
13
14
  /** Presentation mode: keynote (6-25 words/slide) or business (40-80 words/slide) */
14
- mode: PresentationMode;
15
+ mode: PresentationMode$1;
16
+ /** Specific presentation type (optional, inferred from mode if not provided) */
17
+ presentationType?: PresentationType$1;
15
18
  /** Output formats to generate */
16
19
  format: OutputFormat[];
17
20
  /** Visual theme */
@@ -239,7 +242,7 @@ interface PresentationMetadata {
239
242
  /** Generation timestamp */
240
243
  generatedAt: string;
241
244
  /** Presentation mode */
242
- mode: PresentationMode;
245
+ mode: PresentationMode$1;
243
246
  /** Total slide count */
244
247
  slideCount: number;
245
248
  /** Total word count */
@@ -251,7 +254,7 @@ interface PresentationMetadata {
251
254
  /** Themes/frameworks used */
252
255
  frameworks: string[];
253
256
  }
254
- interface ContentAnalysis {
257
+ interface ContentAnalysis$1 {
255
258
  /** SCQA structure extracted */
256
259
  scqa: SCQAStructure;
257
260
  /** Sparkline narrative arc */
@@ -337,6 +340,194 @@ declare class PresentationEngine {
337
340
  private detectFrameworks;
338
341
  }
339
342
 
343
+ /**
344
+ * KnowledgeGateway - Central access point to the presentation knowledge base
345
+ *
346
+ * This gateway provides methods to query the knowledge base for:
347
+ * - Presentation mode selection (keynote vs business)
348
+ * - Expert methodology recommendations
349
+ * - Word limits and constraints
350
+ * - Slide templates
351
+ * - Quality metrics
352
+ * - Color palettes
353
+ * - Anti-patterns to avoid
354
+ *
355
+ * The entire presentation engine should query this gateway for EVERY decision.
356
+ */
357
+ interface PresentationMode {
358
+ name: string;
359
+ use_for: string[];
360
+ characteristics: {
361
+ words_per_slide: string;
362
+ whitespace: string;
363
+ visuals: string;
364
+ structure: string;
365
+ slides_per_idea?: number;
366
+ action_titles?: string;
367
+ };
368
+ experts: string[];
369
+ }
370
+ interface SlideTemplate {
371
+ name: string;
372
+ purpose: string;
373
+ elements?: string[];
374
+ components?: string[];
375
+ word_limit: number;
376
+ }
377
+ interface QualityMetrics {
378
+ keynote_mode: Record<string, {
379
+ threshold?: number;
380
+ required?: boolean;
381
+ description: string;
382
+ }>;
383
+ business_mode: Record<string, {
384
+ threshold?: number;
385
+ required?: boolean;
386
+ description: string;
387
+ }>;
388
+ universal: Record<string, {
389
+ threshold?: number;
390
+ required?: boolean;
391
+ max_items_per_chunk?: number;
392
+ description: string;
393
+ }>;
394
+ }
395
+ interface ColorPalette {
396
+ name: string;
397
+ background: string;
398
+ primary: string;
399
+ secondary: string;
400
+ accent: string;
401
+ text: string;
402
+ use_case: string;
403
+ contrast_ratio: string;
404
+ }
405
+ type PresentationType = 'ted_keynote' | 'sales_pitch' | 'consulting_deck' | 'investment_banking' | 'investor_pitch' | 'technical_presentation' | 'all_hands';
406
+ declare class KnowledgeGateway {
407
+ private kb;
408
+ private loaded;
409
+ constructor();
410
+ /**
411
+ * Load the knowledge base from YAML file
412
+ */
413
+ load(): Promise<void>;
414
+ /**
415
+ * Get presentation mode configuration (keynote or business)
416
+ */
417
+ getMode(mode: 'keynote' | 'business'): PresentationMode;
418
+ /**
419
+ * Determine which mode is best for a given presentation type
420
+ */
421
+ getModeForType(type: PresentationType): 'keynote' | 'business';
422
+ /**
423
+ * Get word limits for the specified mode
424
+ */
425
+ getWordLimits(mode: 'keynote' | 'business'): {
426
+ min: number;
427
+ max: number;
428
+ ideal: number;
429
+ };
430
+ /**
431
+ * Get bullet point limits
432
+ */
433
+ getBulletLimits(mode: 'keynote' | 'business'): {
434
+ maxBullets: number;
435
+ maxWordsPerBullet: number;
436
+ };
437
+ /**
438
+ * Get whitespace percentage requirement
439
+ */
440
+ getWhitespaceRequirement(mode: 'keynote' | 'business'): number;
441
+ /**
442
+ * Get slide templates for the specified mode
443
+ */
444
+ getSlideTemplates(mode: 'keynote' | 'business'): SlideTemplate[];
445
+ /**
446
+ * Get a specific slide template by name
447
+ */
448
+ getSlideTemplate(mode: 'keynote' | 'business', templateName: string): SlideTemplate | undefined;
449
+ /**
450
+ * Get quality metrics for grading
451
+ */
452
+ getQualityMetrics(): QualityMetrics;
453
+ /**
454
+ * Get anti-patterns to avoid
455
+ */
456
+ getAntiPatterns(mode: 'keynote' | 'business'): string[];
457
+ /**
458
+ * Get data visualization anti-patterns
459
+ */
460
+ getDataVizAntiPatterns(): string[];
461
+ /**
462
+ * Get accessibility anti-patterns
463
+ */
464
+ getAccessibilityAntiPatterns(): string[];
465
+ /**
466
+ * Get color palette by name
467
+ */
468
+ getColorPalette(name: string): ColorPalette | undefined;
469
+ /**
470
+ * Get recommended color palette for presentation type
471
+ */
472
+ getRecommendedPalette(type: PresentationType): ColorPalette;
473
+ /**
474
+ * Get typography guidelines for mode
475
+ */
476
+ getTypography(mode: 'keynote' | 'business'): Record<string, string>;
477
+ /**
478
+ * Get story framework by name
479
+ */
480
+ getStoryFramework(name: 'sparkline' | 'scqa' | 'pyramid' | 'scr'): any;
481
+ /**
482
+ * Get expert principles by name
483
+ */
484
+ getExpertPrinciples(expertName: string): any;
485
+ /**
486
+ * Get Duarte's glance test requirements
487
+ */
488
+ getDuarteGlanceTest(): {
489
+ wordLimit: number;
490
+ timeSeconds: number;
491
+ };
492
+ /**
493
+ * Get Miller's Law constraints
494
+ */
495
+ getMillersLaw(): {
496
+ minItems: number;
497
+ maxItems: number;
498
+ };
499
+ /**
500
+ * Get cognitive load constraints
501
+ */
502
+ getCognitiveLoadLimits(): {
503
+ maxItemsPerChunk: number;
504
+ };
505
+ /**
506
+ * Get chart selection guidance
507
+ */
508
+ getChartGuidance(purpose: 'comparison' | 'composition' | 'distribution' | 'relationship'): any;
509
+ /**
510
+ * Get charts to avoid
511
+ */
512
+ getChartsToAvoid(): string[];
513
+ /**
514
+ * Get investment banking pitch book structure
515
+ */
516
+ getIBPitchBookStructure(type: 'ma_sell_side' | 'ma_buy_side' | 'ipo_pitchbook'): any;
517
+ /**
518
+ * Check if knowledge base is loaded
519
+ */
520
+ private ensureLoaded;
521
+ /**
522
+ * Get the full knowledge base (for advanced queries)
523
+ */
524
+ getRawKB(): any;
525
+ }
526
+ /**
527
+ * Get or create the KnowledgeGateway instance
528
+ */
529
+ declare function getKnowledgeGateway(): Promise<KnowledgeGateway>;
530
+
340
531
  /**
341
532
  * Content Analyzer - Extracts Structure from Raw Content
342
533
  *
@@ -344,82 +535,114 @@ declare class PresentationEngine {
344
535
  * - SCQA structure (Barbara Minto)
345
536
  * - Sparkline narrative arc (Nancy Duarte)
346
537
  * - Key messages (Rule of Three)
347
- * - STAR moments
348
- * - Action titles
538
+ * - Sections with headers, bullets, metrics
539
+ * - Presentation type detection
540
+ *
541
+ * Fully integrated with KnowledgeGateway for expert principles.
349
542
  */
350
543
 
544
+ interface ContentSection {
545
+ header: string;
546
+ level: number;
547
+ content: string;
548
+ bullets: string[];
549
+ metrics: Array<{
550
+ value: string;
551
+ label: string;
552
+ context?: string;
553
+ }>;
554
+ }
555
+ interface ContentAnalysis {
556
+ detectedType: PresentationType;
557
+ title: string;
558
+ sections: ContentSection[];
559
+ keyMessages: string[];
560
+ dataPoints: Array<{
561
+ value: string;
562
+ label: string;
563
+ context?: string;
564
+ }>;
565
+ scqa: {
566
+ situation: string;
567
+ complication: string;
568
+ question: string;
569
+ answer: string;
570
+ };
571
+ sparkline: {
572
+ whatIs: string[];
573
+ whatCouldBe: string[];
574
+ callToAdventure: string;
575
+ };
576
+ titles: string[];
577
+ starMoments: string[];
578
+ estimatedSlideCount: number;
579
+ }
351
580
  declare class ContentAnalyzer {
581
+ private kb;
352
582
  private readonly situationSignals;
353
583
  private readonly complicationSignals;
354
- private readonly questionSignals;
355
584
  private readonly answerSignals;
356
- private readonly whatIsSignals;
357
- private readonly whatCouldBeSignals;
585
+ private readonly ctaSignals;
586
+ private readonly typeSignals;
587
+ initialize(): Promise<void>;
358
588
  /**
359
589
  * Analyze content and extract structural elements.
360
590
  */
361
591
  analyze(content: string, contentType: string): Promise<ContentAnalysis>;
362
592
  /**
363
- * Parse content based on its type.
593
+ * Parse content based on type
364
594
  */
365
595
  private parseContent;
366
596
  /**
367
- * Parse markdown content to plain text (preserving structure hints).
597
+ * Extract the main title from content
368
598
  */
369
- private parseMarkdown;
599
+ private extractTitle;
370
600
  /**
371
- * Parse JSON content.
601
+ * Detect presentation type from content signals
372
602
  */
373
- private parseJSON;
603
+ private detectPresentationType;
374
604
  /**
375
- * Parse YAML content.
605
+ * Extract sections from content (headers, bullets, content)
376
606
  */
377
- private parseYAML;
607
+ private extractSections;
378
608
  /**
379
- * Flatten object to text.
609
+ * Extract SCQA structure (Barbara Minto)
380
610
  */
381
- private flattenObject;
382
- /**
383
- * Split text into paragraphs.
384
- */
385
- private splitIntoParagraphs;
386
- /**
387
- * Split text into sentences.
388
- */
389
- private splitIntoSentences;
611
+ private extractSCQA;
390
612
  /**
391
- * Extract SCQA structure (Barbara Minto's Pyramid Principle).
613
+ * Extract STAR moments (Something They'll Always Remember)
614
+ * Per Nancy Duarte - these are emotional peaks in the presentation
392
615
  */
393
- private extractSCQA;
616
+ private extractStarMoments;
394
617
  /**
395
- * Extract Sparkline structure (Nancy Duarte).
618
+ * Extract Sparkline elements (Nancy Duarte)
396
619
  */
397
620
  private extractSparkline;
398
621
  /**
399
- * Extract key messages (max 3 - Rule of Three).
622
+ * Extract key messages (max 3 - Rule of Three)
400
623
  */
401
624
  private extractKeyMessages;
402
625
  /**
403
- * Generate action titles (McKinsey-style).
626
+ * Extract data points (metrics with values)
404
627
  */
405
- private generateActionTitles;
628
+ private extractDataPoints;
406
629
  /**
407
- * Transform a statement into an action title.
630
+ * Get context around a match
408
631
  */
409
- private transformToActionTitle;
632
+ private getContextAroundMatch;
410
633
  /**
411
- * Identify STAR moments (Something They'll Always Remember).
634
+ * Extract a label from surrounding context
635
+ * Fixes the "Century Interactive |" garbage issue by stripping table syntax
412
636
  */
413
- private identifyStarMoments;
637
+ private extractLabelFromContext;
414
638
  /**
415
- * Estimate slide count based on content.
639
+ * Check if text contains any of the signals
416
640
  */
417
- private estimateSlideCount;
418
641
  private containsSignals;
419
- private extractRelevantSentence;
420
- private truncateToSentence;
421
- private truncateToWords;
422
- private capitalizeFirst;
642
+ /**
643
+ * Extract first meaningful sentence from text
644
+ */
645
+ private extractFirstSentence;
423
646
  }
424
647
 
425
648
  /**
@@ -433,11 +656,16 @@ declare class ContentAnalyzer {
433
656
 
434
657
  declare class SlideFactory {
435
658
  private readonly templates;
659
+ private usedContent;
436
660
  constructor();
661
+ /**
662
+ * Check if content has already been used (deduplication)
663
+ */
664
+ private isContentUsed;
437
665
  /**
438
666
  * Create slides from analyzed content.
439
667
  */
440
- createSlides(analysis: ContentAnalysis, mode: PresentationMode): Promise<Slide[]>;
668
+ createSlides(analysis: ContentAnalysis$1, mode: PresentationMode$1): Promise<Slide[]>;
441
669
  /**
442
670
  * Create a title slide.
443
671
  */
@@ -633,19 +861,27 @@ declare class ScoreCalculator {
633
861
  }
634
862
 
635
863
  /**
636
- * QA Engine - Real Visual Quality Validation
864
+ * QA Engine - Real Visual Quality Validation with KB-Driven Metrics
637
865
  *
866
+ * Uses KnowledgeGateway for ALL quality thresholds and expert principles.
638
867
  * Unlike fake validation systems, this engine ACTUALLY tests:
639
868
  * - Visual quality using Playwright screenshots + Canvas API
640
869
  * - Layout balance and whitespace distribution
641
870
  * - WCAG contrast compliance
642
- * - Expert methodology adherence
871
+ * - Expert methodology adherence (Duarte, Reynolds, Gallo, Anderson)
872
+ *
873
+ * CRITICAL: All thresholds come from the knowledge base
643
874
  */
644
875
 
645
876
  declare class QAEngine {
646
877
  private browser;
878
+ private kb;
879
+ /**
880
+ * Initialize KnowledgeGateway
881
+ */
882
+ private initialize;
647
883
  /**
648
- * Validate a presentation.
884
+ * Validate a presentation using KB-driven quality metrics
649
885
  */
650
886
  validate(presentation: string | Buffer, options?: {
651
887
  mode?: 'keynote' | 'business';
@@ -653,7 +889,7 @@ declare class QAEngine {
653
889
  threshold?: number;
654
890
  }): Promise<QAResults>;
655
891
  /**
656
- * Calculate overall QA score.
892
+ * Calculate overall QA score using KB-driven weights
657
893
  */
658
894
  calculateScore(results: QAResults): number;
659
895
  /**
@@ -663,7 +899,10 @@ declare class QAEngine {
663
899
  private runVisualTests;
664
900
  private runContentTests;
665
901
  private runExpertTests;
666
- private createExpertResult;
902
+ private validateDuartePrinciples;
903
+ private validateReynoldsPrinciples;
904
+ private validateGalloPrinciples;
905
+ private validateAndersonPrinciples;
667
906
  private runAccessibilityTests;
668
907
  private calculateVisualScore;
669
908
  private calculateContentScore;
@@ -678,32 +917,47 @@ declare class QAEngine {
678
917
  * Reveal.js Generator - HTML Presentation Output
679
918
  *
680
919
  * Generates complete Reveal.js presentations with:
920
+ * - KB-driven color palettes and typography
681
921
  * - Responsive layouts
682
922
  * - Animations
683
923
  * - Speaker notes
684
- * - Custom themes
685
924
  * - Chart.js integration
686
925
  * - Mermaid diagrams
926
+ *
927
+ * CRITICAL: All design decisions come from KnowledgeGateway
687
928
  */
688
929
 
689
930
  declare class RevealJsGenerator {
690
931
  private templateEngine;
932
+ private kb;
691
933
  private defaultRevealConfig;
692
934
  constructor();
935
+ /**
936
+ * Initialize KnowledgeGateway
937
+ */
938
+ private initialize;
693
939
  /**
694
940
  * Generate complete Reveal.js HTML presentation.
695
941
  */
696
942
  generate(slides: Slide[], config: PresentationConfig): Promise<string>;
943
+ /**
944
+ * Detect presentation type from config
945
+ */
946
+ private detectPresentationType;
697
947
  /**
698
948
  * Build the complete HTML document.
699
949
  */
700
950
  private buildDocument;
701
951
  /**
702
- * Get base styles for slides.
952
+ * Get base styles for slides - KB-DRIVEN
703
953
  */
704
954
  private getBaseStyles;
705
955
  /**
706
- * Get theme-specific styles.
956
+ * Lighten a hex color
957
+ */
958
+ private lightenColor;
959
+ /**
960
+ * Get theme-specific styles - KB-DRIVEN
707
961
  */
708
962
  private getThemeStyles;
709
963
  /**
@@ -1026,111 +1280,6 @@ declare class CompositeChartProvider implements ChartProvider {
1026
1280
  */
1027
1281
  declare function createDefaultChartProvider(): CompositeChartProvider;
1028
1282
 
1029
- /**
1030
- * Knowledge Base - RuVector Expert Principles Loader
1031
- *
1032
- * Loads and provides access to the 6,300+ line expert knowledge base
1033
- * containing methodologies from 40+ presentation experts.
1034
- *
1035
- * This runs WITHOUT any API - it's static data bundled with the package.
1036
- */
1037
- interface ExpertPrinciple {
1038
- name: string;
1039
- description: string;
1040
- validation?: string[];
1041
- examples?: string[];
1042
- }
1043
- interface ExpertMethodology {
1044
- name: string;
1045
- principles: ExpertPrinciple[];
1046
- slideTypes?: string[];
1047
- wordLimits?: {
1048
- min?: number;
1049
- max?: number;
1050
- };
1051
- }
1052
- interface AutomatedQA {
1053
- scoringRubric: {
1054
- totalPoints: number;
1055
- passingThreshold: number;
1056
- categories: Record<string, {
1057
- weight: number;
1058
- checks: Record<string, unknown>;
1059
- }>;
1060
- };
1061
- }
1062
- declare class KnowledgeBase {
1063
- private data;
1064
- private loaded;
1065
- /**
1066
- * Load the knowledge base from the bundled YAML file.
1067
- */
1068
- load(): Promise<void>;
1069
- /**
1070
- * Get expert methodology by name.
1071
- */
1072
- getExpert(name: string): ExpertMethodology | undefined;
1073
- /**
1074
- * Get all expert names.
1075
- */
1076
- getExpertNames(): string[];
1077
- /**
1078
- * Get framework recommendation for audience.
1079
- */
1080
- getFrameworkForAudience(audience: string): {
1081
- primaryFramework: string;
1082
- secondaryFramework?: string;
1083
- slideTypes: string[];
1084
- } | undefined;
1085
- /**
1086
- * Get framework recommendation for goal.
1087
- */
1088
- getFrameworkForGoal(goal: string): {
1089
- primaryFramework: string;
1090
- secondaryFramework?: string;
1091
- slideTypes: string[];
1092
- } | undefined;
1093
- /**
1094
- * Get QA scoring rubric.
1095
- */
1096
- getScoringRubric(): AutomatedQA['scoringRubric'] | undefined;
1097
- /**
1098
- * Get mode configuration (keynote or business).
1099
- */
1100
- getModeConfig(mode: 'keynote' | 'business'): unknown;
1101
- /**
1102
- * Get slide type configuration.
1103
- */
1104
- getSlideType(type: string): unknown;
1105
- /**
1106
- * Get the knowledge base version.
1107
- */
1108
- getVersion(): string;
1109
- /**
1110
- * Validate a slide against expert principles.
1111
- */
1112
- validateAgainstExpert(expertName: string, slideData: {
1113
- wordCount: number;
1114
- hasActionTitle: boolean;
1115
- bulletCount: number;
1116
- }): {
1117
- passed: boolean;
1118
- violations: string[];
1119
- };
1120
- /**
1121
- * Ensure knowledge base is loaded.
1122
- */
1123
- private ensureLoaded;
1124
- /**
1125
- * Get default data if YAML can't be loaded.
1126
- */
1127
- private getDefaultData;
1128
- }
1129
- /**
1130
- * Get the knowledge base singleton.
1131
- */
1132
- declare function getKnowledgeBase(): KnowledgeBase;
1133
-
1134
1283
  /**
1135
1284
  * Claude Presentation Master
1136
1285
  *
@@ -1198,7 +1347,7 @@ declare function validate(presentation: string | Buffer, options?: {
1198
1347
  /**
1199
1348
  * Get the version of the package.
1200
1349
  */
1201
- declare const VERSION = "1.0.0";
1350
+ declare const VERSION = "6.0.0";
1202
1351
  /**
1203
1352
  * Default export for convenience.
1204
1353
  */
@@ -1210,4 +1359,4 @@ declare const _default: {
1210
1359
  VERSION: string;
1211
1360
  };
1212
1361
 
1213
- export { type AccessibilityResults, type ChartData, type ChartDataset, ChartJsProvider, type ChartProvider, type ChartRequest, type ChartResult, type ChartType, CompositeChartProvider, CompositeImageProvider, type ContentAnalysis, ContentAnalyzer, type ContentQAResults, type ContrastIssue, type ExpertQAResults, type ExpertValidation, type FontSizeIssue, type GlanceTestResult, type ImageData, type ImageProvider, type ImageRequest, type ImageResult, KnowledgeBase, LocalImageProvider, MermaidProvider, type MetricData, type OneIdeaResult, type OutputFormat, PlaceholderImageProvider, PowerPointGenerator, type PresentationConfig, PresentationEngine, type PresentationMetadata, type PresentationMode, type PresentationResult, QAEngine, QAFailureError, type QAIssue, type QAResults, QuickChartProvider, RevealJsGenerator, type SCQAStructure, ScoreCalculator, type SignalNoiseResult, type Slide, type SlideContentScore, type SlideData, SlideFactory, type SlideType, type SlideVisualScore, type SparklineStructure, TemplateEngine, TemplateNotFoundError, type ThemeName, UnsplashImageProvider, VERSION, ValidationError, type VisualQAResults, createDefaultChartProvider, createDefaultImageProvider, _default as default, generate, getKnowledgeBase, validate };
1362
+ export { type AccessibilityResults, type ChartData, type ChartDataset, ChartJsProvider, type ChartProvider, type ChartRequest, type ChartResult, type ChartType, type ColorPalette, CompositeChartProvider, CompositeImageProvider, type ContentAnalysis$1 as ContentAnalysis, ContentAnalyzer, type ContentQAResults, type ContrastIssue, type ExpertQAResults, type ExpertValidation, type FontSizeIssue, type GlanceTestResult, type ImageData, type ImageProvider, type ImageRequest, type ImageResult, KnowledgeGateway, LocalImageProvider, MermaidProvider, type MetricData, type OneIdeaResult, type OutputFormat, PlaceholderImageProvider, PowerPointGenerator, type PresentationConfig, PresentationEngine, type PresentationMetadata, type PresentationMode$1 as PresentationMode, type PresentationResult, type PresentationType, QAEngine, QAFailureError, type QAIssue, type QAResults, QuickChartProvider, RevealJsGenerator, type SCQAStructure, ScoreCalculator, type SignalNoiseResult, type Slide, type SlideContentScore, type SlideData, SlideFactory, type SlideTemplate, type SlideType, type SlideVisualScore, type SparklineStructure, TemplateEngine, TemplateNotFoundError, type ThemeName, UnsplashImageProvider, VERSION, ValidationError, type VisualQAResults, createDefaultChartProvider, createDefaultImageProvider, _default as default, generate, getKnowledgeGateway, validate };