import { d as SecretInput } from "./types.secrets-rAcqRhcN.js";
import { _ as GroupPolicy, a as ChannelPreviewStreamingConfig, h as DmPolicy, r as BlockStreamingCoalesceConfig, z as StreamingMode } from "./types.base-D238NWJT.js";
//#region extensions/mattermost/src/types.d.ts
type MattermostReplyToMode = "off" | "first" | "all" | "batched";
type MattermostChatMode = "oncall" | "onmessage" | "onchar";
type MattermostNetworkConfig = {
  /** Dangerous opt-in for self-hosted Mattermost on trusted private/internal hosts. */dangerouslyAllowPrivateNetwork?: boolean;
};
type MattermostAccountConfig = {
  /** Optional display name for this account (used in CLI/UI lists). */name?: string; /** Optional provider capability tags used for agent/runtime guidance. */
  capabilities?: string[];
  /**
   * Break-glass override: allow mutable identity matching (@username/display name) in allowlists.
   * Default behavior is ID-only matching.
   */
  dangerouslyAllowNameMatching?: boolean; /** Allow channel-initiated config writes (default: true). */
  configWrites?: boolean; /** If false, do not start this Mattermost account. Default: true. */
  enabled?: boolean; /** Bot token for Mattermost. */
  botToken?: SecretInput; /** Base URL for the Mattermost server (e.g., https://chat.example.com). */
  baseUrl?: string;
  /**
   * Controls when channel messages trigger replies.
   * - "oncall": only respond when mentioned
   * - "onmessage": respond to every channel message
   * - "onchar": respond when a trigger character prefixes the message
   */
  chatmode?: MattermostChatMode; /** Prefix characters that trigger onchar mode (default: [">", "!"]). */
  oncharPrefixes?: string[]; /** Require @mention to respond in channels. Default: true. */
  requireMention?: boolean; /** Direct message policy (pairing/allowlist/open/disabled). */
  dmPolicy?: DmPolicy; /** Allowlist for direct messages (user ids or @usernames). */
  allowFrom?: Array<string | number>; /** Allowlist for group messages (user ids or @usernames). */
  groupAllowFrom?: Array<string | number>; /** Group message policy (allowlist/open/disabled). */
  groupPolicy?: GroupPolicy; /** Outbound text chunk size (chars). Default: 4000. */
  textChunkLimit?: number; /** Chunking mode: "length" (default) splits by size; "newline" splits on every newline. */
  chunkMode?: "length" | "newline"; /** Preview streaming mode/config. */
  streaming?: StreamingMode | boolean | ChannelPreviewStreamingConfig; /** Disable block streaming for this account. */
  blockStreaming?: boolean; /** Merge streamed block replies before sending. */
  blockStreamingCoalesce?: BlockStreamingCoalesceConfig; /** Outbound response prefix override for this channel/account. */
  responsePrefix?: string;
  /**
   * Controls whether channel and group replies are sent as thread replies.
   * - "off" (default): only thread-reply when incoming message is already a thread reply
   * - "first": reply in a thread under the triggering message
   * - "all": always reply in a thread; uses existing thread root or starts a new thread under the message
   * Direct messages always behave as "off".
   */
  replyToMode?: MattermostReplyToMode; /** Action toggles for this account. */
  actions?: {
    /** Enable message reaction actions. Default: true. */reactions?: boolean;
  }; /** Native slash command configuration. */
  commands?: {
    /** Enable native slash commands. "auto" resolves to false (opt-in). */native?: boolean | "auto"; /** Also register skill-based commands. */
    nativeSkills?: boolean | "auto"; /** Path for the callback endpoint on the gateway HTTP server. */
    callbackPath?: string; /** Explicit callback URL (e.g. behind reverse proxy). */
    callbackUrl?: string;
  };
  interactions?: {
    /** External base URL used for Mattermost interaction callbacks. */callbackBaseUrl?: string;
    /**
     * IP/CIDR allowlist for callback request sources when Mattermost reaches the gateway
     * over a non-loopback path. Keep this narrow to the Mattermost server or trusted ingress.
     */
    allowedSourceIps?: string[];
  }; /** Network policy overrides for self-hosted Mattermost on trusted private/internal hosts. */
  network?: MattermostNetworkConfig; /** Retry configuration for DM channel creation */
  dmChannelRetry?: {
    /** Maximum number of retry attempts (default: 3) */maxRetries?: number; /** Initial delay in milliseconds before first retry (default: 1000) */
    initialDelayMs?: number; /** Maximum delay in milliseconds between retries (default: 10000) */
    maxDelayMs?: number; /** Timeout for each individual request in milliseconds (default: 30000) */
    timeoutMs?: number;
  };
};
//#endregion
//#region extensions/mattermost/src/mattermost/accounts.d.ts
type MattermostTokenSource = "env" | "config" | "none";
type MattermostBaseUrlSource = "env" | "config" | "none";
type ResolvedMattermostAccount = {
  accountId: string;
  enabled: boolean;
  name?: string;
  botToken?: string;
  baseUrl?: string;
  botTokenSource: MattermostTokenSource;
  baseUrlSource: MattermostBaseUrlSource;
  config: MattermostAccountConfig;
  chatmode?: MattermostChatMode;
  oncharPrefixes?: string[];
  requireMention?: boolean;
  textChunkLimit?: number;
  chunkMode?: MattermostAccountConfig["chunkMode"];
  streamingMode: StreamingMode;
  blockStreaming?: boolean;
  blockStreamingCoalesce?: MattermostAccountConfig["blockStreamingCoalesce"];
};
//#endregion
export { ResolvedMattermostAccount as t };