import z from 'zod'; declare const CHAT_MESSAGE_BODY_MIN_LENGTH = 1; declare const CHAT_MESSAGE_BODY_MAX_LENGTH = 500; declare const CHAT_MODERATION_REASON_MAX_LENGTH = 200; /** * Upper bound (seconds) for `videoOffsetSec` — 48 hours. Longer than * any realistic stream duration; anything above this is a bad-actor * or client-clock-skew signal and gets rejected at the wire. */ declare const CHAT_MESSAGE_VIDEO_OFFSET_MAX_SECONDS: number; declare const ChatMessageUserSchema: z.ZodObject<{ id: z.ZodString; displayName: z.ZodString; colorHex: z.ZodString; }, z.core.$strip>; declare const ChatMessageSchema: z.ZodObject<{ id: z.ZodString; body: z.ZodString; createdAt: z.ZodISODateTime; user: z.ZodObject<{ id: z.ZodString; displayName: z.ZodString; colorHex: z.ZodString; }, z.core.$strip>; deletedAt: z.ZodOptional; videoOffsetSec: z.ZodOptional; }, z.core.$strip>; /** * One message in a replay chat chunk. `offsetMs` is milliseconds from * replay frame 0 (`Event.replayTimelineStartedAt`); messages sent before * frame 0 are pinned at 0. `user` is a snapshot taken when the chunk was built. */ declare const ChatReplayMessageSchema: z.ZodObject<{ id: z.ZodString; offsetMs: z.ZodNumber; body: z.ZodString; createdAt: z.ZodISODateTime; user: z.ZodObject<{ id: z.ZodString; displayName: z.ZodString; colorHex: z.ZodString; }, z.core.$strip>; }, z.core.$strip>; /** * A replay chat chunk. Holds the messages with * `startMs <= offsetMs < startMs + chunkMs`, sorted by `offsetMs` ASC, * then `createdAt` ASC. */ declare const ChatReplayChunkSchema: z.ZodObject<{ eventId: z.ZodString; index: z.ZodNumber; startMs: z.ZodNumber; messages: z.ZodArray; }, z.core.$strip>>; }, z.core.$strip>; declare const ChatReplayManifestChunkSchema: z.ZodObject<{ index: z.ZodNumber; startMs: z.ZodNumber; count: z.ZodNumber; path: z.ZodString; }, z.core.$strip>; /** * Replay chat manifest. Only non-empty chunks are listed; a chunk * index missing from `chunks` has no messages. */ declare const ChatReplayManifestSchema: z.ZodObject<{ chunkMs: z.ZodNumber; durationMs: z.ZodNumber; chunks: z.ZodArray>; }, z.core.$strip>; declare const ChatHistoryResponseSchema: z.ZodObject<{ totalCount: z.ZodNumber; pageNumber: z.ZodNumber; pageSize: z.ZodNumber; totalPages: z.ZodNumber; hasPreviousPage: z.ZodBoolean; hasNextPage: z.ZodBoolean; items: z.ZodArray; deletedAt: z.ZodOptional; videoOffsetSec: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; declare const PostChatMessageRequestSchema: z.ZodObject<{ body: z.ZodString; videoOffsetSec: z.ZodOptional; }, z.core.$strip>; declare const ChatModerationDeleteRequestSchema: z.ZodObject<{ reason: z.ZodOptional; }, z.core.$strict>; declare const ChatModerationMuteRequestSchema: z.ZodObject<{ until: z.ZodOptional; reason: z.ZodOptional; }, z.core.$strict>; /** * Public-shape response for `POST /chat/mute`. `mutedUntil` is the source * of truth (`null` = not muted). `mutedBy` is intentionally omitted — * moderation metadata stays out of the response surface. */ declare const ChatMuteStateResponseSchema: z.ZodObject<{ eventId: z.ZodString; mutedUntil: z.ZodNullable; }, z.core.$strip>; declare const ChatCredentialsResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ kind: z.ZodLiteral<"in-process">; wsNamespace: z.ZodString; token: z.ZodString; eventRoomId: z.ZodString; mutedUntil: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"ivs">; roomIdentifier: z.ZodString; endpoint: z.ZodString; token: z.ZodString; tokenTtlSeconds: z.ZodNumber; mutedUntil: z.ZodOptional>; }, z.core.$strip>], "kind">; declare const InProcessChatCredentialsSchema: z.ZodObject<{ kind: z.ZodLiteral<"in-process">; wsNamespace: z.ZodString; token: z.ZodString; eventRoomId: z.ZodString; mutedUntil: z.ZodOptional>; }, z.core.$strip>; declare const IvsChatCredentialsSchema: z.ZodObject<{ kind: z.ZodLiteral<"ivs">; roomIdentifier: z.ZodString; endpoint: z.ZodString; token: z.ZodString; tokenTtlSeconds: z.ZodNumber; mutedUntil: z.ZodOptional>; }, z.core.$strip>; /** * ACK envelope for the `chat.post` client → server frame. Success * carries the persisted message so the FE can dedupe against the * fan-out echo; failure surfaces a stable machine-readable `code` * plus a human-readable `message`. */ declare const ChatPostAckSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ ok: z.ZodLiteral; message: z.ZodObject<{ id: z.ZodString; body: z.ZodString; createdAt: z.ZodISODateTime; user: z.ZodObject<{ id: z.ZodString; displayName: z.ZodString; colorHex: z.ZodString; }, z.core.$strip>; deletedAt: z.ZodOptional; videoOffsetSec: z.ZodOptional; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ ok: z.ZodLiteral; code: z.ZodEnum<{ unauthorized: "unauthorized"; invalid_payload: "invalid_payload"; muted: "muted"; not_live: "not_live"; forbidden: "forbidden"; not_found: "not_found"; rate_limited: "rate_limited"; internal: "internal"; }>; message: z.ZodString; retryAfterSeconds: z.ZodOptional; }, z.core.$strip>], "ok">; type ChatMessageUser = z.infer; type ChatMessage = z.infer; type ChatHistoryResponse = z.infer; type PostChatMessageRequest = z.infer; type ChatModerationDeleteRequest = z.infer; type ChatModerationMuteRequest = z.infer; type ChatMuteStateResponse = z.infer; type ChatCredentialsResponse = z.infer; type IvsChatCredentials = z.infer; type InProcessChatCredentials = z.infer; type ChatPostAck = z.infer; type ChatReplayMessage = z.infer; type ChatReplayChunk = z.infer; type ChatReplayManifestChunk = z.infer; type ChatReplayManifest = z.infer; export { CHAT_MESSAGE_BODY_MAX_LENGTH, CHAT_MESSAGE_BODY_MIN_LENGTH, CHAT_MESSAGE_VIDEO_OFFSET_MAX_SECONDS, CHAT_MODERATION_REASON_MAX_LENGTH, type ChatCredentialsResponse, ChatCredentialsResponseSchema, type ChatHistoryResponse, ChatHistoryResponseSchema, type ChatMessage, ChatMessageSchema, type ChatMessageUser, ChatMessageUserSchema, type ChatModerationDeleteRequest, ChatModerationDeleteRequestSchema, type ChatModerationMuteRequest, ChatModerationMuteRequestSchema, type ChatMuteStateResponse, ChatMuteStateResponseSchema, type ChatPostAck, ChatPostAckSchema, type ChatReplayChunk, ChatReplayChunkSchema, type ChatReplayManifest, type ChatReplayManifestChunk, ChatReplayManifestChunkSchema, ChatReplayManifestSchema, type ChatReplayMessage, ChatReplayMessageSchema, type InProcessChatCredentials, InProcessChatCredentialsSchema, type IvsChatCredentials, IvsChatCredentialsSchema, type PostChatMessageRequest, PostChatMessageRequestSchema };