import type { DatabaseSync } from 'node:sqlite'; import { z } from 'zod'; import { ComposioSessionsAdapter } from '../../connectors/composio-sessions.js'; import { type ScenePrincipal } from '../../scenes/contracts.js'; import type { SceneSourceAdapter, SourceSnapshot } from '../../scenes/taskFollowUp/contracts.js'; export declare const slackThreadSchema: z.ZodObject<{ accountId: z.ZodString; teamId: z.ZodString; channelId: z.ZodString; threadTs: z.ZodString; }, z.core.$strict>; export type SlackThread = z.infer; /** Parse locally; never fetch a user-supplied URL. Reply links resolve to their root. */ export declare function parseSlackThreadUrl(value: string): { channelId: string; threadTs: string; }; /** Read-only connector adapter. Account policy is rechecked before and after every page. */ export declare class SlackThreadSource implements SceneSourceAdapter { private readonly db; private readonly adapter; readonly id = "slack_thread"; readonly label = "Slack thread"; normalize(reference: Record): { accountId: string; teamId: string; channelId: string; threadTs: string; }; accountIds(reference: Record): string[]; authorized(principal: ScenePrincipal, reference: Record): boolean; constructor(db: DatabaseSync, adapter?: Pick); listAccounts(principal: ScenePrincipal): Array<{ id: string; label: string; }>; private connection; private call; resolveLink(principal: ScenePrincipal, accountId: string, url: string, signal: AbortSignal): Promise; read(principal: ScenePrincipal, reference: Record, signal: AbortSignal): Promise; }