import { r as KlawConfig } from "./types.klaw-xKUw_Rz7.js"; import { N as MessageReceipt, h as ChannelMessageSendMediaContext, y as ChannelMessageSendTextContext } from "./types-CPrjYzuc.js"; import { n as ChannelPlugin } from "./types.public-BSMobFik.js"; import { t as ResolvedSynologyChatAccount } from "./types-mGT7aZLa.js"; //#region extensions/synology-chat/src/channel.d.ts declare const CHANNEL_ID = "synology-chat"; type SynologyChannelGatewayContext = { cfg: KlawConfig; accountId: string; abortSignal: AbortSignal; log?: { info: (message: string) => void; warn: (message: string) => void; error: (message: string) => void; }; }; type SynologyChannelOutboundContext = { cfg: KlawConfig; to: string; text?: string; mediaUrl?: string; accountId?: string | null; }; type SynologyChannelSendTextContext = SynologyChannelOutboundContext & { text: string; }; type SynologyChannelSendMediaContext = SynologyChannelOutboundContext & { mediaUrl: string; }; type SynologyChatOutboundResult = { channel: typeof CHANNEL_ID; messageId: string; chatId: string; receipt: MessageReceipt; }; type SynologyChatPlugin = Omit, "pairing" | "security" | "messaging" | "directory" | "outbound" | "gateway" | "agentPrompt"> & { pairing: { idLabel: string; normalizeAllowEntry?: (entry: string) => string; notifyApproval: (params: { cfg: KlawConfig; id: string; }) => Promise; }; security: { resolveDmPolicy: (params: { cfg: KlawConfig; account: ResolvedSynologyChatAccount; }) => { policy: string | null | undefined; allowFrom?: Array; normalizeEntry?: (raw: string) => string; } | null; collectWarnings: (params: { cfg: KlawConfig; account: ResolvedSynologyChatAccount; }) => string[]; }; messaging: { targetPrefixes?: readonly string[]; normalizeTarget: (target: string) => string | undefined; targetResolver: { looksLikeId: (id: string) => boolean; hint: string; }; }; directory: { self?: NonNullable["directory"]>["self"]; listPeers?: NonNullable["directory"]>["listPeers"]; listGroups?: NonNullable["directory"]>["listGroups"]; }; outbound: { deliveryMode: "gateway"; textChunkLimit: number; sendText: (ctx: SynologyChannelSendTextContext) => Promise; sendMedia: (ctx: SynologyChannelSendMediaContext) => Promise; }; message: typeof synologyChatMessageAdapter; gateway: { startAccount: (ctx: SynologyChannelGatewayContext) => Promise; stopAccount: (ctx: SynologyChannelGatewayContext) => Promise; }; agentPrompt: { messageToolHints: () => string[]; }; }; declare const synologyChatMessageAdapter: { readonly id: "synology-chat"; readonly durableFinal: { readonly capabilities: { readonly text: true; readonly media: true; readonly messageSendingHooks: true; }; }; readonly send: { readonly text: (ctx: ChannelMessageSendTextContext) => Promise; readonly media: (ctx: ChannelMessageSendMediaContext) => Promise; }; } & { receive: {}; }; declare const synologyChatPlugin: SynologyChatPlugin; //#endregion export { synologyChatPlugin as t };