export type Brand = T & { readonly __brand: B; }; export type TenantId = Brand; export type UserId = Brand; export type ConversationId = Brand; export type SubjectId = Brand; export type MessageId = Brand; export type ActionId = Brand; export type ProfileId = Brand; export type ConnectionId = Brand; export declare const asTenantId: (s: string) => TenantId; export declare const asUserId: (s: string) => UserId; export declare const asConversationId: (s: string) => ConversationId; export declare const asSubjectId: (s: string) => SubjectId; export declare const asMessageId: (s: string) => MessageId; export declare const asActionId: (s: string) => ActionId; export declare const asProfileId: (s: string) => ProfileId; export declare const asConnectionId: (s: string) => ConnectionId; /** Anonymous guests live under this tenant; they bypass cross-tenant scoping but * are still gated by conversation membership. */ export declare const ANONYMOUS_TENANT: TenantId;