/** * The session-key oracle (SH0). * * ONE function that turns a platform message's identity into a canonical, * stable key. Every shuttle calls this — it is the conformance oracle for * "one brain, one thread per person, no context bleed." Never re-implement * keying anywhere else. * * Format: `ownware::::[:thread:][:user:]` * * ownware:acme-support:telegram:dm:12345 * ownware:acme-support:slack:channel:C0ABC:thread:1712345678.9001 * ownware:acme-support:whatsapp:group:120363@g.us:user:15551234567 (groupPerUser) */ import type { SessionKeyParts, SessionKeyOptions } from './types.js'; /** * Build the canonical session key for one conversation. * @throws {Error} if `profile`, `channel`, or `chatId` is empty. */ export declare function sessionKey(parts: SessionKeyParts, opts?: SessionKeyOptions): string; /** True if a string looks like a session key this oracle produced. */ export declare function isSessionKey(value: string): boolean; /** * The stable prefix for every conversation of one agent on one channel — * useful for listing/scoping all threads for `acme-support` on `telegram`. */ export declare function sessionKeyPrefix(profile: string, channel: string): string; /** * Parse a key back into its parts (the inverse of {@link sessionKey}). * Returns null if the string is not a well-formed session key. Components * are the sanitized forms (colons/whitespace already collapsed to `_`). */ export declare function parseSessionKey(value: string): SessionKeyParts | null; //# sourceMappingURL=session-key.d.ts.map