/** * Web channel adapter for dsh-connect: enables DSH Web GUI to mirror and * interact with Feishu conversations through the unified ChannelAdapter interface. * @module dsh-connect/web */ import type { Context } from "@deepseek-ai/cordis"; import z from "@deepseek-ai/schemastery"; import type { BindingStore } from "../../binding.js"; export { WebAdapter } from "./adapter.js"; /** Plugin configuration options. */ export declare const Config: z; /** Access control for *this* channel; see the Feishu adapter's note on channel-specific ids. */ allowUsers: z; allowChats: z; }>>, Schemastery.ObjectT; /** Access control for *this* channel; see the Feishu adapter's note on channel-specific ids. */ allowUsers: z; allowChats: z; }>>, "plain">; export interface ConnectWebConfig { pollIntervalMs?: number; } interface ConnectLike { registerAdapter(adapter: unknown): void; /** Public accessor for the binding routing store (added to ConnectService). */ bindingStore?: BindingStore; } /** * Register and start the Web adapter. This enables the DSH Web GUI to * automatically detect and interact with mirrored Feishu conversations. * `connect` is the already-constructed `ConnectService` instance (passed from * the merged entry, not resolved via `ctx.get`), so its public `bindingStore` * getter is read directly. * * When a user runs `/mirror` in Feishu, the resulting webMirrorSessionId * becomes accessible through this adapter, allowing the Web GUI to: * - View the shared session history * - Send messages (subject to lock ownership) * - Receive real-time updates through DSH's session event system */ export declare function register(connect: ConnectLike, config: (ConnectWebConfig | null) | undefined, ctx: Context): void; /** * Compatibility shell for the old split-plugin registration path (when `connect` * is an already-active, separate plugin). The merged entry calls `register` * directly instead, because `ctx.get("connect")` returns undefined inside this * plugin's own `apply`. */ export declare function apply(ctx: Context, config?: ConnectWebConfig | null): void; //# sourceMappingURL=index.d.ts.map