import type { JsonValue } from '../../../types.ts'; /** * UTC day directory for a Slack timestamp. * * Bucketing is UTC because `dateRange` in `readdir` is, so a 6pm PDT message * belongs to the *next* day's directory. Reading the consumer's local clock * here would name a directory the mount does not serve, and a notify on a path * that does not exist is silent. */ export declare function dayOf(ts: string): string | null; /** * Channel and ts a reaction or pin event points at. * * Both wrap the thing they happened to in an `item` rather than naming it at * the top level, and both spell the id `channel` inside it where `file_shared` * spells it `channel_id` outside. */ export declare function itemChannel(payload: JsonValue): [string | null, string | null]; /** * The message object an event is about. * * An edit and a deletion both describe another message rather than themselves, * and nest it under a different key. */ export declare function subject(payload: JsonValue): JsonValue; /** * The ts of the message an event is about. * * Not always the event's own `ts`: an edit and a deletion both arrive stamped * now while naming a message from any earlier day, so taking the top-level ts * would refresh today's directory and leave the day that actually changed * stale. */ export declare function messageTs(payload: JsonValue): string | null; /** Whether a thread reply was also sent to the channel. */ export declare function isBroadcast(payload: JsonValue): boolean; /** * Timestamps whose day directories a message event makes stale. * * Usually just the message's own, but a thread reply is the case that breaks * that: `chat.jsonl` renders `conversations.history`, which returns parents * only, so a reply is in no day file at all. What changed is the *parent's* * row, whose `reply_count` and `latest_reply` the same listing carries, in the * parent's day. A reply to a week-old thread therefore refreshes a week-old * directory and leaves today's alone. * * A broadcast reply is the exception to the exception: Slack puts it in the * channel history too, so both days change. */ export declare function affectedTs(payload: JsonValue): readonly string[]; /** * The conversation id a listing event names. * * Slack spells it two ways for the same family: `channel_deleted` sends the * bare id, `channel_rename` sends the whole channel object. */ export declare function channelIdOf(payload: JsonValue): string | null; //# sourceMappingURL=payload.d.ts.map