use super::{
ICDATASection, ICloseElementTag, IComment, IDocType, IOpenElementTag, IProcessingInstruction,
IStandaloneElementTag, ITemplateEnd, ITemplateStart, IText, IXMLDeclaration,
};
pub trait IModelVisitor {
fn visit_template_start(&mut self, template_start: &dyn ITemplateStart);
fn visit_template_end(&mut self, template_end: &dyn ITemplateEnd);
fn visit_xml_declaration(&mut self, xml_declaration: &dyn IXMLDeclaration);
fn visit_doc_type(&mut self, doc_type: &dyn IDocType);
fn visit_cdata_section(&mut self, cdata_section: &dyn ICDATASection);
fn visit_comment(&mut self, comment: &dyn IComment);
fn visit_text(&mut self, text: &dyn IText);
fn visit_standalone_element_tag(&mut self, standalone_element_tag: &dyn IStandaloneElementTag);
fn visit_open_element_tag(&mut self, open_element_tag: &dyn IOpenElementTag);
fn visit_close_element_tag(&mut self, close_element_tag: &dyn ICloseElementTag);
fn visit_processing_instruction(&mut self, processing_instruction: &dyn IProcessingInstruction);
}