using System.Collections.Generic; // Operations run on the editor main thread and every await inside them continues on Unity's // synchronization context, so Unity Localization table writes, AssetDatabase calls and // EditorUtility.SetDirty all run on the main thread without marshalling. No code in this folder // (or anything it calls) may use ConfigureAwait(false). namespace Crowdin.Plugin.Operations { public sealed record OperationProgress(string Message, float? Percent = null); public sealed record PushStringsOptions( IReadOnlyList Tables, int? BranchId, bool UpdateStrings, bool CleanupMode, string UpdateOptionApiKey); public sealed record PushAssetsOptions(IReadOnlyList Tables); public sealed record PushTranslationsOptions( IReadOnlyList Tables, int? BranchId, bool UpdateStrings, bool CleanupMode, bool AutoApprove); public sealed record PullOptions( IReadOnlyList Tables, int? BranchId, bool PreserveEntryIds); public sealed record ScreenshotsOptions(string ScreenshotPath); public sealed record PushStringsResult(int SentStrings, int TotalStrings, IReadOnlyDictionary PerTable); public sealed record PushAssetsResult(int SentAssets, IReadOnlyDictionary PerTable); public sealed record PushTranslationsResult(int SentTranslations, IReadOnlyDictionary PerLocale); public sealed record PullResult(int ReceivedTranslations, IReadOnlyDictionary ImportedPerTable); public sealed record ScreenshotsResult(int Uploaded, int Updated); }