using QWERTYkez.WordProcessor.Builders;
namespace QWERTYkez.WordProcessor;
public interface IWordWriter : IWordReader
{
/// Добавляет новый параграф с указанным текстом в конец документа.
void AddParagraph(string text, bool preserveFormatting = true);
void ReplaceItem(IDictionary> replacements);
void ReplaceItem(IDictionary replacements);
void ReplaceItem(IEnumerable>> replacements);
void ReplaceItem(IEnumerable> replacements);
void ReplaceItem(string oldValue, IEnumerable newValues);
void ReplaceItem(string oldValue, params ReplaceItem[] newValues);
void ReplaceString(IDictionary> replacements);
void ReplaceString(IDictionary replacements);
void ReplaceString(IEnumerable>> replacements);
void ReplaceString(IEnumerable> replacements);
void ReplaceString(string oldValue, IEnumerable newValues);
void ReplaceString(string oldValue, params string[] newValues);
void ReplaceToTable(string oldValue, Action buildTable);
void ReplaceToText(string oldValue, Action buildText);
void Save();
void SaveTo(string path);
Task SaveToAsync(string path, CancellationToken cancellationToken = default);
bool TrySaveTo(string path, out Exception? error);
}