import AppKit
import CoreGraphics
import Foundation

@MainActor
public protocol OverlayHostProtocol {
    func show(context: OverlayContext)
    func hide(reason: DismissReason)
    func promoteForTextInput(allowAppActivation: Bool)
    func attachChild(_ window: NSWindow)
    func detachChild(_ window: NSWindow)
    func beginSheet(_ panel: NSPanel, completion: (() -> Void)?)
    var currentLevel: CGWindowLevel { get }
}

@MainActor
public protocol TriggerServiceProtocol {
    func start()
    func stop()
    var onQuickSwitch: (() -> Void)? { get set }
}
