import type { PlatformAdapter } from '../adapter.js'; import type { SlackAdapterConfig } from './slack.js'; import type { FeishuAdapterConfig } from './feishu.js'; export type PlatformType = 'slack' | 'discord' | 'telegram' | 'feishu' | 'tui' | 'test'; export interface AdapterConfig { platform: PlatformType; slack?: SlackAdapterConfig; feishu?: FeishuAdapterConfig; } export declare function createAdapter(config: AdapterConfig): PlatformAdapter; /** Options injected from the composition root for capabilities that cross layer boundaries. */ export interface AdapterOverrides { } /** * Detect and create all primary (Slack / Feishu / test) adapters from * environment variables. `CORTEX_PLATFORM` is a comma-separated list (e.g. * `slack,feishu`); a single value is fully back-compatible. Platforms whose * credentials are missing are silently skipped. Returns an empty array when no * primary platform is configured — the caller falls back to TUI-only mode. */ export declare function createPrimaryAdaptersFromEnv(): PlatformAdapter[]; /** * Back-compat shim: return the first configured primary adapter, or null. * Prefer createPrimaryAdaptersFromEnv() for multi-platform support. */ export declare function createPrimaryAdapterFromEnv(): PlatformAdapter | null; /** * Create a PlatformAdapter from environment variables. * * Assembles all configured primary adapters (Slack/Feishu/test, per the * comma-separated `CORTEX_PLATFORM`) plus an optional TUI gateway: * no adapters → throw * exactly one adapter → return it directly * two or more adapters → CompositeAdapter([...]) */ export declare function createAdapterFromEnv(): PlatformAdapter; export { SlackAdapter } from './slack.js'; export type { SlackAdapterConfig } from './slack.js'; export { FeishuAdapter } from './feishu.js'; export type { FeishuAdapterConfig } from './feishu.js';