// GENERATED CODE! DO NOT MODIFY BY HAND!

// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { FuzzyFileSearchSessionCompletedNotification } from "./FuzzyFileSearchSessionCompletedNotification.js";
import type { FuzzyFileSearchSessionUpdatedNotification } from "./FuzzyFileSearchSessionUpdatedNotification.js";
import type { AccountLoginCompletedNotification } from "./v2/AccountLoginCompletedNotification.js";
import type { AccountRateLimitsUpdatedNotification } from "./v2/AccountRateLimitsUpdatedNotification.js";
import type { AccountUpdatedNotification } from "./v2/AccountUpdatedNotification.js";
import type { AgentMessageDeltaNotification } from "./v2/AgentMessageDeltaNotification.js";
import type { AppListUpdatedNotification } from "./v2/AppListUpdatedNotification.js";
import type { CommandExecOutputDeltaNotification } from "./v2/CommandExecOutputDeltaNotification.js";
import type { CommandExecutionOutputDeltaNotification } from "./v2/CommandExecutionOutputDeltaNotification.js";
import type { ConfigWarningNotification } from "./v2/ConfigWarningNotification.js";
import type { ContextCompactedNotification } from "./v2/ContextCompactedNotification.js";
import type { DeprecationNoticeNotification } from "./v2/DeprecationNoticeNotification.js";
import type { ErrorNotification } from "./v2/ErrorNotification.js";
import type { ExternalAgentConfigImportCompletedNotification } from "./v2/ExternalAgentConfigImportCompletedNotification.js";
import type { FileChangeOutputDeltaNotification } from "./v2/FileChangeOutputDeltaNotification.js";
import type { FileChangePatchUpdatedNotification } from "./v2/FileChangePatchUpdatedNotification.js";
import type { FsChangedNotification } from "./v2/FsChangedNotification.js";
import type { GuardianWarningNotification } from "./v2/GuardianWarningNotification.js";
import type { HookCompletedNotification } from "./v2/HookCompletedNotification.js";
import type { HookStartedNotification } from "./v2/HookStartedNotification.js";
import type { ItemCompletedNotification } from "./v2/ItemCompletedNotification.js";
import type { ItemGuardianApprovalReviewCompletedNotification } from "./v2/ItemGuardianApprovalReviewCompletedNotification.js";
import type { ItemGuardianApprovalReviewStartedNotification } from "./v2/ItemGuardianApprovalReviewStartedNotification.js";
import type { ItemStartedNotification } from "./v2/ItemStartedNotification.js";
import type { McpServerOauthLoginCompletedNotification } from "./v2/McpServerOauthLoginCompletedNotification.js";
import type { McpServerStatusUpdatedNotification } from "./v2/McpServerStatusUpdatedNotification.js";
import type { McpToolCallProgressNotification } from "./v2/McpToolCallProgressNotification.js";
import type { ModelReroutedNotification } from "./v2/ModelReroutedNotification.js";
import type { ModelVerificationNotification } from "./v2/ModelVerificationNotification.js";
import type { PlanDeltaNotification } from "./v2/PlanDeltaNotification.js";
import type { RawResponseItemCompletedNotification } from "./v2/RawResponseItemCompletedNotification.js";
import type { ReasoningSummaryPartAddedNotification } from "./v2/ReasoningSummaryPartAddedNotification.js";
import type { ReasoningSummaryTextDeltaNotification } from "./v2/ReasoningSummaryTextDeltaNotification.js";
import type { ReasoningTextDeltaNotification } from "./v2/ReasoningTextDeltaNotification.js";
import type { RemoteControlStatusChangedNotification } from "./v2/RemoteControlStatusChangedNotification.js";
import type { ServerRequestResolvedNotification } from "./v2/ServerRequestResolvedNotification.js";
import type { SkillsChangedNotification } from "./v2/SkillsChangedNotification.js";
import type { TerminalInteractionNotification } from "./v2/TerminalInteractionNotification.js";
import type { ThreadArchivedNotification } from "./v2/ThreadArchivedNotification.js";
import type { ThreadClosedNotification } from "./v2/ThreadClosedNotification.js";
import type { ThreadGoalClearedNotification } from "./v2/ThreadGoalClearedNotification.js";
import type { ThreadGoalUpdatedNotification } from "./v2/ThreadGoalUpdatedNotification.js";
import type { ThreadNameUpdatedNotification } from "./v2/ThreadNameUpdatedNotification.js";
import type { ThreadRealtimeClosedNotification } from "./v2/ThreadRealtimeClosedNotification.js";
import type { ThreadRealtimeErrorNotification } from "./v2/ThreadRealtimeErrorNotification.js";
import type { ThreadRealtimeItemAddedNotification } from "./v2/ThreadRealtimeItemAddedNotification.js";
import type { ThreadRealtimeOutputAudioDeltaNotification } from "./v2/ThreadRealtimeOutputAudioDeltaNotification.js";
import type { ThreadRealtimeSdpNotification } from "./v2/ThreadRealtimeSdpNotification.js";
import type { ThreadRealtimeStartedNotification } from "./v2/ThreadRealtimeStartedNotification.js";
import type { ThreadRealtimeTranscriptDeltaNotification } from "./v2/ThreadRealtimeTranscriptDeltaNotification.js";
import type { ThreadRealtimeTranscriptDoneNotification } from "./v2/ThreadRealtimeTranscriptDoneNotification.js";
import type { ThreadStartedNotification } from "./v2/ThreadStartedNotification.js";
import type { ThreadStatusChangedNotification } from "./v2/ThreadStatusChangedNotification.js";
import type { ThreadTokenUsageUpdatedNotification } from "./v2/ThreadTokenUsageUpdatedNotification.js";
import type { ThreadUnarchivedNotification } from "./v2/ThreadUnarchivedNotification.js";
import type { TurnCompletedNotification } from "./v2/TurnCompletedNotification.js";
import type { TurnDiffUpdatedNotification } from "./v2/TurnDiffUpdatedNotification.js";
import type { TurnPlanUpdatedNotification } from "./v2/TurnPlanUpdatedNotification.js";
import type { TurnStartedNotification } from "./v2/TurnStartedNotification.js";
import type { WarningNotification } from "./v2/WarningNotification.js";
import type { WindowsSandboxSetupCompletedNotification } from "./v2/WindowsSandboxSetupCompletedNotification.js";
import type { WindowsWorldWritableWarningNotification } from "./v2/WindowsWorldWritableWarningNotification.js";

/**
 * Notification sent from the server to the client.
 */
export type ServerNotification =
  | { method: "error"; params: ErrorNotification }
  | { method: "thread/started"; params: ThreadStartedNotification }
  | { method: "thread/status/changed"; params: ThreadStatusChangedNotification }
  | { method: "thread/archived"; params: ThreadArchivedNotification }
  | { method: "thread/unarchived"; params: ThreadUnarchivedNotification }
  | { method: "thread/closed"; params: ThreadClosedNotification }
  | { method: "skills/changed"; params: SkillsChangedNotification }
  | { method: "thread/name/updated"; params: ThreadNameUpdatedNotification }
  | { method: "thread/goal/updated"; params: ThreadGoalUpdatedNotification }
  | { method: "thread/goal/cleared"; params: ThreadGoalClearedNotification }
  | { method: "thread/tokenUsage/updated"; params: ThreadTokenUsageUpdatedNotification }
  | { method: "turn/started"; params: TurnStartedNotification }
  | { method: "hook/started"; params: HookStartedNotification }
  | { method: "turn/completed"; params: TurnCompletedNotification }
  | { method: "hook/completed"; params: HookCompletedNotification }
  | { method: "turn/diff/updated"; params: TurnDiffUpdatedNotification }
  | { method: "turn/plan/updated"; params: TurnPlanUpdatedNotification }
  | { method: "item/started"; params: ItemStartedNotification }
  | {
      method: "item/autoApprovalReview/started";
      params: ItemGuardianApprovalReviewStartedNotification;
    }
  | {
      method: "item/autoApprovalReview/completed";
      params: ItemGuardianApprovalReviewCompletedNotification;
    }
  | { method: "item/completed"; params: ItemCompletedNotification }
  | { method: "rawResponseItem/completed"; params: RawResponseItemCompletedNotification }
  | { method: "item/agentMessage/delta"; params: AgentMessageDeltaNotification }
  | { method: "item/plan/delta"; params: PlanDeltaNotification }
  | { method: "command/exec/outputDelta"; params: CommandExecOutputDeltaNotification }
  | { method: "item/commandExecution/outputDelta"; params: CommandExecutionOutputDeltaNotification }
  | { method: "item/commandExecution/terminalInteraction"; params: TerminalInteractionNotification }
  | { method: "item/fileChange/outputDelta"; params: FileChangeOutputDeltaNotification }
  | { method: "item/fileChange/patchUpdated"; params: FileChangePatchUpdatedNotification }
  | { method: "serverRequest/resolved"; params: ServerRequestResolvedNotification }
  | { method: "item/mcpToolCall/progress"; params: McpToolCallProgressNotification }
  | { method: "mcpServer/oauthLogin/completed"; params: McpServerOauthLoginCompletedNotification }
  | { method: "mcpServer/startupStatus/updated"; params: McpServerStatusUpdatedNotification }
  | { method: "account/updated"; params: AccountUpdatedNotification }
  | { method: "account/rateLimits/updated"; params: AccountRateLimitsUpdatedNotification }
  | { method: "app/list/updated"; params: AppListUpdatedNotification }
  | { method: "remoteControl/status/changed"; params: RemoteControlStatusChangedNotification }
  | {
      method: "externalAgentConfig/import/completed";
      params: ExternalAgentConfigImportCompletedNotification;
    }
  | { method: "fs/changed"; params: FsChangedNotification }
  | { method: "item/reasoning/summaryTextDelta"; params: ReasoningSummaryTextDeltaNotification }
  | { method: "item/reasoning/summaryPartAdded"; params: ReasoningSummaryPartAddedNotification }
  | { method: "item/reasoning/textDelta"; params: ReasoningTextDeltaNotification }
  | { method: "thread/compacted"; params: ContextCompactedNotification }
  | { method: "model/rerouted"; params: ModelReroutedNotification }
  | { method: "model/verification"; params: ModelVerificationNotification }
  | { method: "warning"; params: WarningNotification }
  | { method: "guardianWarning"; params: GuardianWarningNotification }
  | { method: "deprecationNotice"; params: DeprecationNoticeNotification }
  | { method: "configWarning"; params: ConfigWarningNotification }
  | { method: "fuzzyFileSearch/sessionUpdated"; params: FuzzyFileSearchSessionUpdatedNotification }
  | {
      method: "fuzzyFileSearch/sessionCompleted";
      params: FuzzyFileSearchSessionCompletedNotification;
    }
  | { method: "thread/realtime/started"; params: ThreadRealtimeStartedNotification }
  | { method: "thread/realtime/itemAdded"; params: ThreadRealtimeItemAddedNotification }
  | {
      method: "thread/realtime/transcript/delta";
      params: ThreadRealtimeTranscriptDeltaNotification;
    }
  | { method: "thread/realtime/transcript/done"; params: ThreadRealtimeTranscriptDoneNotification }
  | {
      method: "thread/realtime/outputAudio/delta";
      params: ThreadRealtimeOutputAudioDeltaNotification;
    }
  | { method: "thread/realtime/sdp"; params: ThreadRealtimeSdpNotification }
  | { method: "thread/realtime/error"; params: ThreadRealtimeErrorNotification }
  | { method: "thread/realtime/closed"; params: ThreadRealtimeClosedNotification }
  | { method: "windows/worldWritableWarning"; params: WindowsWorldWritableWarningNotification }
  | { method: "windowsSandbox/setupCompleted"; params: WindowsSandboxSetupCompletedNotification }
  | { method: "account/login/completed"; params: AccountLoginCompletedNotification };
