use std::path::Path;
use std::sync::{Arc, RwLock};
use crate::core::cache::{CacheConfig, CacheKey, TileCache};
use crate::core::decode_runtime::{AdaptiveDecodeReader, DecodeExecutionOptions, DecodeRuntime};
#[cfg(test)]
use crate::core::decode_runtime::{DecodeRoute, DecodeRouteDecision};
use crate::core::types::*;
use crate::error::WsiError;
pub(crate) const DEFAULT_MAX_REGION_PIXELS: u64 = 256 * 1024 * 1024;
mod composition;
mod open_options;
mod probe_cache;
mod registry_impl;
mod slide;
mod traits;
pub(crate) use composition::{
check_region_pixel_limit, composite_region_from_source, crop_rgb_interleaved_u8_buffer,
read_display_tile_from_source,
};
pub use open_options::SlideOpenOptions;
pub(crate) use probe_cache::ConfiguredProbeCache;
pub use registry_impl::FormatRegistry;
pub use slide::Slide;
pub(crate) use traits::{
read_cpu_tiles_with_backend, ConfiguredDatasetReader, ConfiguredFormatProbe,
};
pub use traits::{
DatasetReader, FormatProbe, ProbeConfidence, ProbeResult, SlideReadContext, SlideReader,
};
#[cfg(test)]
mod tests;