summaryrefslogtreecommitdiff
path: root/lsfg_vk/types.py
diff options
context:
space:
mode:
Diffstat (limited to 'lsfg_vk/types.py')
-rw-r--r--lsfg_vk/types.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/lsfg_vk/types.py b/lsfg_vk/types.py
new file mode 100644
index 0000000..f0ec892
--- /dev/null
+++ b/lsfg_vk/types.py
@@ -0,0 +1,71 @@
+"""
+Type definitions for the lsfg-vk plugin responses.
+"""
+
+from typing import TypedDict, Optional, List
+
+
+class BaseResponse(TypedDict):
+ """Base response structure"""
+ success: bool
+
+
+class ErrorResponse(BaseResponse):
+ """Response structure for errors"""
+ error: str
+
+
+class MessageResponse(BaseResponse):
+ """Response structure with message"""
+ message: str
+
+
+class InstallationResponse(BaseResponse):
+ """Response for installation operations"""
+ message: str
+ error: Optional[str]
+
+
+class UninstallationResponse(BaseResponse):
+ """Response for uninstallation operations"""
+ message: str
+ removed_files: Optional[List[str]]
+ error: Optional[str]
+
+
+class InstallationCheckResponse(TypedDict):
+ """Response for installation check"""
+ installed: bool
+ lib_exists: bool
+ json_exists: bool
+ script_exists: bool
+ lib_path: str
+ json_path: str
+ script_path: str
+ error: Optional[str]
+
+
+class DllDetectionResponse(TypedDict):
+ """Response for DLL detection"""
+ detected: bool
+ path: Optional[str]
+ source: Optional[str]
+ message: Optional[str]
+ error: Optional[str]
+
+
+class ConfigurationData(TypedDict):
+ """Configuration data structure"""
+ enable_lsfg: bool
+ multiplier: int
+ flow_scale: float
+ hdr: bool
+ perf_mode: bool
+ immediate_mode: bool
+
+
+class ConfigurationResponse(BaseResponse):
+ """Response for configuration operations"""
+ config: Optional[ConfigurationData]
+ message: Optional[str]
+ error: Optional[str]