use std::path::PathBuf;
use super::{ResolutionResult, Sha256Hash};
use crate::config::Settings;
pub trait ProjectResolutionProvider: Send + Sync {
fn language_id(&self) -> &'static str;
fn is_enabled(&self, settings: &Settings) -> bool;
fn config_paths(&self, settings: &Settings) -> Vec<PathBuf>;
fn compute_shas(
&self,
configs: &[PathBuf],
) -> ResolutionResult<std::collections::HashMap<PathBuf, Sha256Hash>>;
fn rebuild_cache(&self, settings: &Settings) -> ResolutionResult<()>;
fn select_affected_files(&self, settings: &Settings) -> Vec<PathBuf>;
}