use crate::summary::SummaryLevel;
use crate::summary_item::SummaryItem;
pub trait LanguageDetection {
fn detect_language_with_fallback(&self, file_path: &str) -> Option<String>;
fn detect_from_content(&self, content: &str, file_path: Option<&str>) -> Option<String>;
}
pub trait SummaryExtraction {
fn extract_summary(
&self,
lines: &[String],
language: Option<&str>,
level: SummaryLevel,
) -> Vec<SummaryItem>;
fn is_summary_worthy(&self, line: &str, language: Option<&str>, level: SummaryLevel) -> bool;
}