/** * Feishu/Lark channel plugin (Socket Mode first). * * This is intentionally decomposed into small modules so we can grow toward * openclaw `extensions/feishu` parity without turning `plugin.ts` into a monolith. */ import './pairing-config-resolver.js'; import type { Config } from '@xopcai/xopc/config/schema.js'; import type { ChannelCapabilities, ChannelDoctorAdapter, ChannelMessageActionAdapter, ChannelOutboundAdapter, ChannelPlugin, ChannelPluginDefaults, ChannelPluginInitOptions, ChannelPluginReloadMeta, ChannelPluginStartOptions, ChannelSecurityAdapter, ChannelStatusAdapter } from '@xopcai/xopc/channels/plugin-types.js'; import type { ChannelCliLoginAdapter, ChannelRuntimeActionAdapter, ChannelOnboardAdapter } from '@xopcai/xopc/channels/plugins/types.adapters.js'; import { type ResolvedFeishuAccount } from './state/accounts.js'; export declare class FeishuChannelPlugin implements ChannelPlugin { readonly id: "feishu"; readonly reload: ChannelPluginReloadMeta; readonly meta: { readonly id: "feishu"; readonly label: "Feishu"; readonly selectionLabel: "Feishu/Lark (飞书)"; readonly docsPath: "/channels/feishu"; readonly blurb: "Feishu/Lark enterprise messaging (Socket Mode)."; readonly order: 4; readonly deferConnectUntilAfterListen: true; }; readonly capabilities: ChannelCapabilities; readonly defaults: ChannelPluginDefaults; readonly configSchema: { schema: {}; validate: (raw: unknown) => { ok: true; errors?: undefined; } | { ok: false; errors: string[]; }; }; readonly configSurface: import("@xopcai/xopc/channels/plugins/types.adapters.js").ChannelConfigSurfaceAdapter; readonly pairing: import("@xopcai/xopc/channels/plugins/types.adapters.js").ChannelPairingAdapter; onboard: ChannelOnboardAdapter; readonly cliLogin: ChannelCliLoginAdapter; readonly runtimeActions: ChannelRuntimeActionAdapter; private bus; private cfg; private abortControllers; private inboundPipeline?; /** Unregister fn for the workflow-progress capability registered against the global broker. */ private workflowProgressUnregister; config: { listAccountIds: (cfg: Config) => string[]; resolveAccount: (cfg: Config, accountId?: string | null) => ResolvedFeishuAccount; isConfigured: (account: ResolvedFeishuAccount) => Promise; describeAccount: (account: ResolvedFeishuAccount) => { accountId: string; channelId: string; enabled: boolean; configured: boolean; status: string; }; }; security: ChannelSecurityAdapter; outbound: ChannelOutboundAdapter; streaming: import("@xopcai/xopc/channels/plugin-types.js").ChannelStreamingAdapter; status: ChannelStatusAdapter; doctor: ChannelDoctorAdapter; directory: { resolveDisplayName: (params: any) => Promise; }; actions: ChannelMessageActionAdapter; agentTools: { name: string; description: string; execute: (toolCtx: any, args: any) => Promise; }[]; init(options: ChannelPluginInitOptions): Promise; private registerWorkflowProgressCapability; start(options?: ChannelPluginStartOptions): Promise; stop(accountId?: string): Promise; channelIsRunning(cfg: Config): boolean; onConfigUpdated(cfg: Config): Promise; } export declare const feishuPlugin: FeishuChannelPlugin;