import { en as AgentBinding, r as KlawConfig } from "./types.klaw-xKUw_Rz7.js"; import { o as GroupToolPolicyConfig } from "./types.tools-CbDu09ip.js"; import { s as ReplyPayload } from "./get-reply-options.types-CS-CA1Iq.js"; import { l as ExecApprovalResolved, s as ExecApprovalRequest } from "./exec-approvals-D24np_n8.js"; import { n as RuntimeEnv } from "./runtime-BPmgxFyD.js"; import { F as ChannelStatusIssue, M as ChannelSecurityContext, N as ChannelSecurityDmPolicy, P as ChannelSetupInput, _ as ChannelLogSink, g as ChannelLegacyStateMigrationPlan, h as ChannelHeartbeatDeps, i as ChannelAccountState, m as ChannelGroupContext, r as ChannelAccountSnapshot, u as ChannelDirectoryEntry } from "./types.core-BSyOg0vX.js"; import { R as ChannelApprovalNativeAdapter, W as ChannelApprovalKind, l as ChannelApprovalNativeRuntimeAdapter } from "./approval-handler-runtime-types-DR3exrL5.js"; import { c as PluginApprovalResolved, o as PluginApprovalRequest } from "./plugin-approvals-C1U8clbW.js"; import { r as SecretDefaults, t as ResolverContext } from "./runtime-shared-DVRrdXcr.js"; import { o as SecretTargetRegistryEntry } from "./target-registry-types-YlqhvNAQ.js"; import { n as ChannelRuntimeSurface } from "./channel-runtime-surface.types-B3-KWWds.js"; //#region src/config/legacy.shared.d.ts type LegacyConfigRule = { path: string[]; message: string; match?: (value: unknown, root: Record) => boolean; requireSourceLiteral?: boolean; }; //#endregion //#region src/channels/plugins/config-write-policy-shared.d.ts type ConfigWriteScopeLike = { channelId?: TChannelId | null; accountId?: string | null; }; type ConfigWriteTargetLike = { kind: "global"; } | { kind: "channel"; scope: { channelId: TChannelId; }; } | { kind: "account"; scope: { channelId: TChannelId; accountId: string; }; } | { kind: "ambiguous"; scopes: ConfigWriteScopeLike[]; }; type ConfigWriteAuthorizationResultLike = { allowed: true; } | { allowed: false; reason: "ambiguous-target" | "origin-disabled" | "target-disabled"; blockedScope?: { kind: "origin" | "target"; scope: ConfigWriteScopeLike; }; }; //#endregion //#region src/channels/plugins/config-writes.d.ts type ConfigWriteTarget = ConfigWriteTargetLike; //#endregion //#region src/channels/plugins/types.adapters.d.ts type ConfiguredBindingRule = AgentBinding; type ChannelActionAvailabilityState = { kind: "enabled"; } | { kind: "disabled"; } | { kind: "unsupported"; }; type ChannelApprovalInitiatingSurfaceState = ChannelActionAvailabilityState; type ChannelApprovalForwardTarget = { channel: string; to: string; accountId?: string | null; threadId?: string | number | null; source?: "session" | "target"; }; type ChannelCapabilitiesDisplayTone = "default" | "muted" | "success" | "warn" | "error"; type ChannelCapabilitiesDisplayLine = { text: string; tone?: ChannelCapabilitiesDisplayTone; }; type ChannelCapabilitiesDiagnostics = { lines?: ChannelCapabilitiesDisplayLine[]; details?: Record; }; type ChannelAdapterCallback unknown> = T; type ChannelSetupAdapter = { resolveAccountId?: (params: { cfg: KlawConfig; accountId?: string; input?: ChannelSetupInput; }) => string; resolveBindingAccountId?: (params: { cfg: KlawConfig; agentId: string; accountId?: string; }) => string | undefined; applyAccountName?: (params: { cfg: KlawConfig; accountId: string; name?: string; }) => KlawConfig; applyAccountConfig: (params: { cfg: KlawConfig; accountId: string; input: ChannelSetupInput; }) => KlawConfig; afterAccountConfigWritten?: (params: { previousCfg: KlawConfig; cfg: KlawConfig; accountId: string; input: ChannelSetupInput; runtime: RuntimeEnv; }) => Promise | void; validateInput?: (params: { cfg: KlawConfig; accountId: string; input: ChannelSetupInput; }) => string | null; singleAccountKeysToMove?: readonly string[]; namedAccountPromotionKeys?: readonly string[]; resolveSingleAccountPromotionTarget?: (params: { channel: Record; }) => string | undefined; }; type ChannelConfigAdapter = { listAccountIds: (cfg: KlawConfig) => string[]; resolveAccount: (cfg: KlawConfig, accountId?: string | null) => ResolvedAccount; inspectAccount?: (cfg: KlawConfig, accountId?: string | null) => unknown; defaultAccountId?: (cfg: KlawConfig) => string; setAccountEnabled?: (params: { cfg: KlawConfig; accountId: string; enabled: boolean; }) => KlawConfig; deleteAccount?: (params: { cfg: KlawConfig; accountId: string; }) => KlawConfig; isEnabled?: ChannelAdapterCallback<(account: ResolvedAccount, cfg: KlawConfig) => boolean>; disabledReason?: ChannelAdapterCallback<(account: ResolvedAccount, cfg: KlawConfig) => string>; isConfigured?: ChannelAdapterCallback<(account: ResolvedAccount, cfg: KlawConfig) => boolean | Promise>; unconfiguredReason?: ChannelAdapterCallback<(account: ResolvedAccount, cfg: KlawConfig) => string>; describeAccount?: ChannelAdapterCallback<(account: ResolvedAccount, cfg: KlawConfig) => ChannelAccountSnapshot>; resolveAllowFrom?: (params: { cfg: KlawConfig; accountId?: string | null; }) => Array | undefined; formatAllowFrom?: (params: { cfg: KlawConfig; accountId?: string | null; allowFrom: Array; }) => string[]; hasConfiguredState?: (params: { cfg: KlawConfig; env?: NodeJS.ProcessEnv; }) => boolean; hasPersistedAuthState?: (params: { cfg: KlawConfig; env?: NodeJS.ProcessEnv; }) => boolean; resolveDefaultTo?: (params: { cfg: KlawConfig; accountId?: string | null; }) => string | undefined; }; type ChannelSecretsAdapter = { secretTargetRegistryEntries?: readonly SecretTargetRegistryEntry[]; unsupportedSecretRefSurfacePatterns?: readonly string[]; collectUnsupportedSecretRefConfigCandidates?: (raw: unknown) => Array<{ path: string; value: unknown; }>; collectRuntimeConfigAssignments?: (params: { config: KlawConfig; defaults: SecretDefaults | undefined; context: ResolverContext; }) => void; }; type ChannelGroupAdapter = { resolveRequireMention?: (params: ChannelGroupContext) => boolean | undefined; resolveGroupIntroHint?: (params: ChannelGroupContext) => string | undefined; resolveToolPolicy?: (params: ChannelGroupContext) => GroupToolPolicyConfig | undefined; }; type ChannelStatusAdapter = { defaultRuntime?: ChannelAccountSnapshot; buildChannelSummary?: ChannelAdapterCallback<(params: { account: ResolvedAccount; cfg: KlawConfig; defaultAccountId: string; snapshot: ChannelAccountSnapshot; }) => Record | Promise>>; probeAccount?: ChannelAdapterCallback<(params: { account: ResolvedAccount; timeoutMs: number; cfg: KlawConfig; }) => Promise>; formatCapabilitiesProbe?: ChannelAdapterCallback<(params: { probe: Probe; }) => ChannelCapabilitiesDisplayLine[]>; auditAccount?: ChannelAdapterCallback<(params: { account: ResolvedAccount; timeoutMs: number; cfg: KlawConfig; probe?: Probe; }) => Promise>; buildCapabilitiesDiagnostics?: ChannelAdapterCallback<(params: { account: ResolvedAccount; timeoutMs: number; cfg: KlawConfig; probe?: Probe; audit?: Audit; target?: string; }) => Promise>; buildAccountSnapshot?: ChannelAdapterCallback<(params: { account: ResolvedAccount; cfg: KlawConfig; runtime?: ChannelAccountSnapshot; probe?: Probe; audit?: Audit; }) => ChannelAccountSnapshot | Promise>; logSelfId?: ChannelAdapterCallback<(params: { account: ResolvedAccount; cfg: KlawConfig; runtime: RuntimeEnv; includeChannelPrefix?: boolean; }) => void>; resolveAccountState?: ChannelAdapterCallback<(params: { account: ResolvedAccount; cfg: KlawConfig; configured: boolean; enabled: boolean; }) => ChannelAccountState>; collectStatusIssues?: (accounts: ChannelAccountSnapshot[]) => ChannelStatusIssue[]; }; type ChannelGatewayContext = { cfg: KlawConfig; accountId: string; account: ResolvedAccount; runtime: RuntimeEnv; abortSignal: AbortSignal; log?: ChannelLogSink; getStatus: () => ChannelAccountSnapshot; setStatus: (next: ChannelAccountSnapshot) => void; /** * Optional channel runtime helpers for external channel plugins. * * This field provides access to advanced Plugin SDK features that are * available to external plugins but not to built-in channels (which can * directly import internal modules). * * ## Available Features * * - **reply**: AI response dispatching, formatting, and delivery * - **routing**: Agent route resolution and matching * - **text**: Text chunking, markdown processing, and control command detection * - **session**: Session management and metadata tracking * - **media**: Remote media fetching and buffer saving * - **commands**: Command authorization and control command handling * - **groups**: Group policy resolution and mention requirements * - **pairing**: Channel pairing and allow-from management * * ## Use Cases * * External channel plugins (e.g., email, SMS, custom integrations) that need: * - AI-powered response generation and delivery * - Advanced text processing and formatting * - Session tracking and management * - Agent routing and policy resolution * * ## Example * * ```typescript * const emailGatewayAdapter: ChannelGatewayAdapter = { * startAccount: async (ctx) => { * // Check availability (for backward compatibility) * if (!ctx.channelRuntime) { * ctx.log?.warn?.("channelRuntime not available - skipping AI features"); * return; * } * * // Use AI dispatch * await ctx.channelRuntime.reply.dispatchReplyWithBufferedBlockDispatcher({ * ctx: { ... }, * cfg: ctx.cfg, * dispatcherOptions: { * deliver: async (payload) => { * // Send reply via email * }, * }, * }); * }, * }; * ``` * * ## Backward Compatibility * * - This field is **optional** - channels that don't need it can ignore it * - Bundled channels typically don't use this field * because they can directly import internal modules * - External plugins should check for undefined before using * - `runtimeContexts` is the stable startup-safe subset. Bundled channels * may receive only that subset during provider boot. * - External channel plugins that need reply/routing/session helpers receive * a full `createPluginRuntime().channel` surface from the Gateway. * * @since Plugin SDK 2026.2.19 * @see {@link https://klaw.kodelyth.com/plugins/building-plugins | Plugin SDK documentation} */ channelRuntime?: ChannelRuntimeSurface; }; type ChannelLogoutResult = { cleared: boolean; loggedOut?: boolean; [key: string]: unknown; }; type ChannelLoginWithQrStartResult = { qrDataUrl?: string; message: string; connected?: boolean; }; type ChannelLoginWithQrWaitResult = { connected: boolean; message: string; qrDataUrl?: string; }; type ChannelLogoutContext = { cfg: KlawConfig; accountId: string; account: ResolvedAccount; runtime: RuntimeEnv; log?: ChannelLogSink; }; type ChannelGatewayAdapter = { startAccount?: (ctx: ChannelGatewayContext) => Promise; stopAccount?: (ctx: ChannelGatewayContext) => Promise; /** Keep gateway auth bypass resolution mirrored through a lightweight top-level `gateway-auth-api.ts` artifact. */ resolveGatewayAuthBypassPaths?: (params: { cfg: KlawConfig; }) => string[]; loginWithQrStart?: (params: { accountId?: string; force?: boolean; timeoutMs?: number; verbose?: boolean; }) => Promise; loginWithQrWait?: (params: { accountId?: string; timeoutMs?: number; currentQrDataUrl?: string; }) => Promise; logoutAccount?: (ctx: ChannelLogoutContext) => Promise; }; type ChannelAuthAdapter = { login?: (params: { cfg: KlawConfig; accountId?: string | null; runtime: RuntimeEnv; verbose?: boolean; channelInput?: string | null; }) => Promise; }; type ChannelHeartbeatAdapter = { checkReady?: (params: { cfg: KlawConfig; accountId?: string | null; deps?: ChannelHeartbeatDeps; }) => Promise<{ ok: boolean; reason: string; }>; sendTyping?: (params: { cfg: KlawConfig; to: string; accountId?: string | null; threadId?: string | number | null; deps?: ChannelHeartbeatDeps; }) => Promise | void; clearTyping?: (params: { cfg: KlawConfig; to: string; accountId?: string | null; threadId?: string | number | null; deps?: ChannelHeartbeatDeps; }) => Promise | void; }; type ChannelDirectorySelfParams = { cfg: KlawConfig; accountId?: string | null; runtime: RuntimeEnv; }; type ChannelDirectoryListParams = { cfg: KlawConfig; accountId?: string | null; query?: string | null; limit?: number | null; runtime: RuntimeEnv; }; type ChannelDirectoryListGroupMembersParams = { cfg: KlawConfig; accountId?: string | null; groupId: string; limit?: number | null; runtime: RuntimeEnv; }; type ChannelDirectoryAdapter = { self?: (params: ChannelDirectorySelfParams) => Promise; listPeers?: (params: ChannelDirectoryListParams) => Promise; listPeersLive?: (params: ChannelDirectoryListParams) => Promise; listGroups?: (params: ChannelDirectoryListParams) => Promise; listGroupsLive?: (params: ChannelDirectoryListParams) => Promise; listGroupMembers?: (params: ChannelDirectoryListGroupMembersParams) => Promise; }; type ChannelResolveKind = "user" | "group"; type ChannelResolveResult = { input: string; resolved: boolean; id?: string; name?: string; note?: string; }; type ChannelResolverAdapter = { resolveTargets: (params: { cfg: KlawConfig; accountId?: string | null; inputs: string[]; kind: ChannelResolveKind; runtime: RuntimeEnv; }) => Promise; }; type ChannelElevatedAdapter = { allowFromFallback?: (params: { cfg: KlawConfig; accountId?: string | null; }) => Array | undefined; }; type ChannelCommandAdapter = { enforceOwnerForCommands?: boolean; skipWhenConfigEmpty?: boolean; nativeCommandsAutoEnabled?: boolean; nativeSkillsAutoEnabled?: boolean; preferSenderE164ForCommands?: boolean; resolveNativeCommandName?: (params: { commandKey: string; defaultName: string; }) => string | undefined; buildCommandsListChannelData?: (params: { currentPage: number; totalPages: number; agentId?: string; }) => ReplyPayload["channelData"] | null; buildModelsMenuChannelData?: (params: { providers: Array<{ id: string; count: number; }>; }) => ReplyPayload["channelData"] | null; buildModelsProviderChannelData?: (params: { providers: Array<{ id: string; count: number; }>; }) => ReplyPayload["channelData"] | null; buildModelsAddProviderChannelData?: (params: { providers: Array<{ id: string; }>; }) => ReplyPayload["channelData"] | null; buildModelsListChannelData?: (params: { provider: string; models: readonly string[]; currentModel?: string; currentPage: number; totalPages: number; pageSize?: number; modelNames?: ReadonlyMap; }) => ReplyPayload["channelData"] | null; buildModelBrowseChannelData?: () => ReplyPayload["channelData"] | null; }; type ChannelDoctorConfigMutation = { config: KlawConfig; changes: string[]; warnings?: string[]; }; type ChannelDoctorLegacyConfigRule = LegacyConfigRule; type ChannelDoctorSequenceResult = { changeNotes: string[]; warningNotes: string[]; }; type ChannelDoctorEmptyAllowlistAccountContext = { account: Record; channelName: string; dmPolicy?: string; effectiveAllowFrom?: Array; parent?: Record; prefix: string; }; type ChannelDoctorAdapter = { dmAllowFromMode?: "topOnly" | "topOrNested" | "nestedOnly"; groupModel?: "sender" | "route" | "hybrid"; groupAllowFromFallbackToAllowFrom?: boolean; warnOnEmptyGroupSenderAllowlist?: boolean; legacyConfigRules?: LegacyConfigRule[]; normalizeCompatibilityConfig?: (params: { cfg: KlawConfig; }) => ChannelDoctorConfigMutation; collectPreviewWarnings?: (params: { cfg: KlawConfig; doctorFixCommand: string; env?: NodeJS.ProcessEnv; }) => string[] | Promise; collectMutableAllowlistWarnings?: (params: { cfg: KlawConfig; }) => string[] | Promise; repairConfig?: (params: { cfg: KlawConfig; doctorFixCommand: string; }) => ChannelDoctorConfigMutation | Promise; runConfigSequence?: (params: { cfg: KlawConfig; env: NodeJS.ProcessEnv; shouldRepair: boolean; }) => ChannelDoctorSequenceResult | Promise; cleanStaleConfig?: (params: { cfg: KlawConfig; }) => ChannelDoctorConfigMutation | Promise; collectEmptyAllowlistExtraWarnings?: (params: ChannelDoctorEmptyAllowlistAccountContext) => string[]; shouldSkipDefaultEmptyGroupAllowlistWarning?: (params: ChannelDoctorEmptyAllowlistAccountContext) => boolean; }; type ChannelLifecycleAdapter = { onAccountConfigChanged?: (params: { prevCfg: KlawConfig; nextCfg: KlawConfig; accountId: string; runtime: RuntimeEnv; }) => Promise | void; onAccountRemoved?: (params: { prevCfg: KlawConfig; accountId: string; runtime: RuntimeEnv; }) => Promise | void; runStartupMaintenance?: (params: { cfg: KlawConfig; env?: NodeJS.ProcessEnv; log: { info?: (message: string) => void; warn?: (message: string) => void; }; trigger?: string; logPrefix?: string; }) => Promise | void; detectLegacyStateMigrations?: (params: { cfg: KlawConfig; env: NodeJS.ProcessEnv; stateDir: string; oauthDir: string; }) => ChannelLegacyStateMigrationPlan[] | Promise; }; type ChannelApprovalDeliveryAdapter = { hasConfiguredDmRoute?: (params: { cfg: KlawConfig; }) => boolean; shouldSuppressForwardingFallback?: (params: { cfg: KlawConfig; approvalKind: ChannelApprovalKind; target: ChannelApprovalForwardTarget; request: ExecApprovalRequest; }) => boolean; }; type ChannelApproveCommandBehavior = { kind: "allow"; } | { kind: "ignore"; } | { kind: "reply"; text: string; }; type ChannelApprovalRenderAdapter = { exec?: { buildPendingPayload?: (params: { cfg: KlawConfig; request: ExecApprovalRequest; target: ChannelApprovalForwardTarget; nowMs: number; }) => ReplyPayload | null; buildResolvedPayload?: (params: { cfg: KlawConfig; resolved: ExecApprovalResolved; target: ChannelApprovalForwardTarget; }) => ReplyPayload | null; }; plugin?: { buildPendingPayload?: (params: { cfg: KlawConfig; request: PluginApprovalRequest; target: ChannelApprovalForwardTarget; nowMs: number; }) => ReplyPayload | null; buildResolvedPayload?: (params: { cfg: KlawConfig; resolved: PluginApprovalResolved; target: ChannelApprovalForwardTarget; }) => ReplyPayload | null; }; }; type ChannelApprovalAdapter = { delivery?: ChannelApprovalDeliveryAdapter; nativeRuntime?: ChannelApprovalNativeRuntimeAdapter; render?: ChannelApprovalRenderAdapter; native?: ChannelApprovalNativeAdapter; describeExecApprovalSetup?: (params: { channel: string; channelLabel: string; accountId?: string; }) => string | null | undefined; }; type ChannelApprovalCapability = ChannelApprovalAdapter & { authorizeActorAction?: (params: { cfg: KlawConfig; accountId?: string | null; senderId?: string | null; action: "approve"; approvalKind: "exec" | "plugin"; }) => { authorized: boolean; reason?: string; }; getActionAvailabilityState?: (params: { cfg: KlawConfig; accountId?: string | null; action: "approve"; approvalKind?: ChannelApprovalKind; }) => ChannelActionAvailabilityState; /** Exec-native client availability for the initiating surface; distinct from same-chat auth. */ getExecInitiatingSurfaceState?: (params: { cfg: KlawConfig; accountId?: string | null; action: "approve"; }) => ChannelActionAvailabilityState; resolveApproveCommandBehavior?: (params: { cfg: KlawConfig; accountId?: string | null; senderId?: string | null; approvalKind: ChannelApprovalKind; }) => ChannelApproveCommandBehavior | undefined; }; type ChannelAllowlistAdapter = { applyConfigEdit?: (params: { cfg: KlawConfig; parsedConfig: Record; accountId?: string | null; scope: "dm" | "group"; action: "add" | "remove"; entry: string; }) => { kind: "ok"; changed: boolean; pathLabel: string; writeTarget: ConfigWriteTarget; } | { kind: "invalid-entry"; } | Promise<{ kind: "ok"; changed: boolean; pathLabel: string; writeTarget: ConfigWriteTarget; } | { kind: "invalid-entry"; }> | null; readConfig?: (params: { cfg: KlawConfig; accountId?: string | null; }) => { dmAllowFrom?: Array; groupAllowFrom?: Array; dmPolicy?: string; groupPolicy?: string; groupOverrides?: Array<{ label: string; entries: Array; }>; } | Promise<{ dmAllowFrom?: Array; groupAllowFrom?: Array; dmPolicy?: string; groupPolicy?: string; groupOverrides?: Array<{ label: string; entries: Array; }>; }>; resolveNames?: (params: { cfg: KlawConfig; accountId?: string | null; scope: "dm" | "group"; entries: string[]; }) => Array<{ input: string; resolved: boolean; name?: string | null; }> | Promise>; supportsScope?: (params: { scope: "dm" | "group" | "all"; }) => boolean; }; type ChannelConfiguredBindingConversationRef = { conversationId: string; parentConversationId?: string; }; type ChannelConfiguredBindingMatch = ChannelConfiguredBindingConversationRef & { matchPriority?: number; }; type ChannelCommandConversationContext = { accountId: string; threadId?: string; threadParentId?: string; senderId?: string; sessionKey?: string; parentSessionKey?: string; from?: string; chatType?: string; originatingTo?: string; commandTo?: string; fallbackTo?: string; }; type ChannelConfiguredBindingProvider = { selfParentConversationByDefault?: boolean; compileConfiguredBinding: (params: { binding: ConfiguredBindingRule; conversationId: string; }) => ChannelConfiguredBindingConversationRef | null; matchInboundConversation: (params: { binding: ConfiguredBindingRule; compiledBinding: ChannelConfiguredBindingConversationRef; conversationId: string; parentConversationId?: string; }) => ChannelConfiguredBindingMatch | null; resolveCommandConversation?: (params: ChannelCommandConversationContext) => ChannelConfiguredBindingConversationRef | null; }; type ChannelConversationBindingSupport = { supportsCurrentConversationBinding?: boolean; /** * Preferred placement when a command is started from a top-level conversation * without an existing native thread id. * * - `current`: bind/spawn in the current conversation * - `child`: create a child thread/conversation first */ defaultTopLevelPlacement?: "current" | "child"; resolveConversationRef?: (params: { accountId?: string | null; conversationId: string; parentConversationId?: string; threadId?: string | number | null; }) => { conversationId: string; parentConversationId?: string; } | null; buildBoundReplyPayload?: (params: { operation: "acp-spawn"; placement: "current" | "child"; conversation: { channel: string; accountId?: string | null; conversationId: string; parentConversationId?: string; }; }) => Pick | null | Promise | null>; buildModelOverrideParentCandidates?: (params: { parentConversationId?: string | null; }) => string[] | null | undefined; shouldStripThreadFromAnnounceOrigin?: (params: { requester: { channel?: string; to?: string; threadId?: string | number; }; entry: { channel?: string; to?: string; threadId?: string | number; }; }) => boolean; setIdleTimeoutBySessionKey?: (params: { targetSessionKey: string; accountId?: string | null; idleTimeoutMs: number; }) => Array<{ boundAt: number; lastActivityAt: number; idleTimeoutMs?: number; maxAgeMs?: number; }>; setMaxAgeBySessionKey?: (params: { targetSessionKey: string; accountId?: string | null; maxAgeMs: number; }) => Array<{ boundAt: number; lastActivityAt: number; idleTimeoutMs?: number; maxAgeMs?: number; }>; createManager?: (params: { cfg: KlawConfig; accountId?: string | null; }) => { stop: () => void | Promise; } | Promise<{ stop: () => void | Promise; }>; }; type ChannelSecurityAdapter = { applyConfigFixes?: (params: { cfg: KlawConfig; env: NodeJS.ProcessEnv; }) => ChannelDoctorConfigMutation | Promise; resolveDmPolicy?: ChannelAdapterCallback<(ctx: ChannelSecurityContext) => ChannelSecurityDmPolicy | null>; collectWarnings?: ChannelAdapterCallback<(ctx: ChannelSecurityContext) => Promise | string[]>; collectAuditFindings?: ChannelAdapterCallback<(ctx: ChannelSecurityContext & { sourceConfig: KlawConfig; orderedAccountIds: string[]; hasExplicitAccountPath: boolean; }) => Promise> | Array<{ checkId: string; severity: "info" | "warn" | "critical"; title: string; detail: string; remediation?: string; }>>; }; //#endregion export { ChannelGroupAdapter as A, ChannelSecretsAdapter as B, ChannelDoctorConfigMutation as C, ChannelElevatedAdapter as D, ChannelDoctorSequenceResult as E, ChannelLogoutContext as F, ConfigWriteScopeLike as G, ChannelSetupAdapter as H, ChannelLogoutResult as I, ConfigWriteTargetLike as K, ChannelResolveKind as L, ChannelLifecycleAdapter as M, ChannelLoginWithQrStartResult as N, ChannelGatewayAdapter as O, ChannelLoginWithQrWaitResult as P, ChannelResolveResult as R, ChannelDoctorAdapter as S, ChannelDoctorLegacyConfigRule as T, ChannelStatusAdapter as U, ChannelSecurityAdapter as V, ConfigWriteAuthorizationResultLike as W, ChannelConfiguredBindingConversationRef as _, ChannelApprovalDeliveryAdapter as a, ChannelConversationBindingSupport as b, ChannelApprovalRenderAdapter as c, ChannelCapabilitiesDiagnostics as d, ChannelCapabilitiesDisplayLine as f, ChannelConfigAdapter as g, ChannelCommandConversationContext as h, ChannelApprovalCapability as i, ChannelHeartbeatAdapter as j, ChannelGatewayContext as k, ChannelApproveCommandBehavior as l, ChannelCommandAdapter as m, ChannelAllowlistAdapter as n, ChannelApprovalForwardTarget as o, ChannelCapabilitiesDisplayTone as p, LegacyConfigRule as q, ChannelApprovalAdapter as r, ChannelApprovalInitiatingSurfaceState as s, ChannelActionAvailabilityState as t, ChannelAuthAdapter as u, ChannelConfiguredBindingMatch as v, ChannelDoctorEmptyAllowlistAccountContext as w, ChannelDirectoryAdapter as x, ChannelConfiguredBindingProvider as y, ChannelResolverAdapter as z };