from PyQt6.QtCore import QObject, pyqtSignal

class HotkeySignal(QObject):
    triggered = pyqtSignal()

class AISignal(QObject):
    responded   = pyqtSignal(str)
    chunk       = pyqtSignal(str)
    stream_done = pyqtSignal()

class FileSignal(QObject):
    results = pyqtSignal(list)

class AppSignal(QObject):
    results = pyqtSignal(list)

class UpdateSignal(QObject):
    available = pyqtSignal(str, str, str)   # version, code_url, notes
    progress = pyqtSignal(int, int)         # done_bytes, total_bytes
    done = pyqtSignal(bool, str)            # ok, message

class InfoSignal(QObject):
    info = pyqtSignal(str)

class GitLabSignal(QObject):
    data = pyqtSignal(list)

class BranchResultSignal(QObject):
    result = pyqtSignal(str, object)  # url, list[str] | str

class OCRSignal(QObject):
    triggered = pyqtSignal()
    finished = pyqtSignal(str)
