use std::sync::Arc;
use crate::engine::TemplateData;
use crate::expression::TemplateValue;
use crate::inline::IInliner;
use crate::util::Utf16String;
pub trait IElementModelStructureHandler {
fn reset(&mut self);
fn set_local_variable(&mut self, name: Utf16String, value: Option<Arc<TemplateValue>>);
fn remove_local_variable(&mut self, name: Utf16String);
fn set_selection_target(&mut self, selection_target: Option<Arc<TemplateValue>>);
fn set_inliner(&mut self, inliner: Option<Arc<dyn IInliner>>);
fn set_template_data(&mut self, template_data: Arc<TemplateData>);
}