use std::io::{self, Seek, Write};
use crate::model::Book;
mod azw3;
mod css_gen;
mod epub;
mod html_synth;
mod kfx;
mod normalize;
mod text;
pub use azw3::{Azw3Config, Azw3Exporter};
pub use css_gen::{CssArtifact, generate_css, generate_css_all};
pub use epub::{EpubConfig, EpubExporter};
pub use html_synth::{
SynthesisResult, escape_xml, escape_xml_into, synthesize_html, synthesize_html_with_class_list,
synthesize_xhtml_document, synthesize_xhtml_document_with_class_list,
};
pub use kfx::{KfxConfig, KfxExporter};
pub use normalize::{ChapterContent, GlobalStylePool, NormalizedContent, normalize_book};
pub use text::{MarkdownConfig, MarkdownExporter};
pub trait Exporter {
fn export<W: Write + Seek>(&self, book: &mut Book, writer: &mut W) -> io::Result<()>;
}