/**
 * 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 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 } from '@xopcai/xopc/channels/plugins/types.adapters.js';
import { type ResolvedFeishuAccount } from './state/accounts.js';
export declare class FeishuChannelPlugin implements ChannelPlugin<ResolvedFeishuAccount> {
    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: import("@xopcai/xopc/channels/plugins/types.adapters.js").ChannelOnboardAdapter;
    readonly cliLogin: ChannelCliLoginAdapter;
    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<boolean>;
        describeAccount: (account: ResolvedFeishuAccount) => {
            accountId: string;
            channelId: string;
            enabled: boolean;
            configured: boolean;
            status: string;
        };
    };
    security: ChannelSecurityAdapter<ResolvedFeishuAccount>;
    outbound: ChannelOutboundAdapter;
    streaming: import("@xopcai/xopc/channels/plugin-types.js").ChannelStreamingAdapter;
    status: ChannelStatusAdapter<ResolvedFeishuAccount>;
    doctor: ChannelDoctorAdapter;
    directory: import("@xopcai/xopc/channels/plugins/types.adapters.js").ChannelDirectoryAdapter;
    actions: ChannelMessageActionAdapter;
    agentTools: {
        name: string;
        description: string;
        execute: (toolCtx: any, args: any) => Promise<any>;
    }[];
    init(options: ChannelPluginInitOptions): Promise<void>;
    start(options?: ChannelPluginStartOptions): Promise<void>;
    stop(accountId?: string): Promise<void>;
    channelIsRunning(cfg: Config): boolean;
    onConfigUpdated(cfg: Config): Promise<void>;
}
export declare const feishuPlugin: FeishuChannelPlugin;
