import { type Static } from "@sinclair/typebox"; import type { EventId } from "./EventId.js"; export declare const DOCUMENT_STATE_MAX_BYTES: number; export declare const DOCUMENT_UPDATE_MAX_BYTES: number; export declare const DOCUMENT_UPDATE_PAGE_MAX_LIMIT = 1000; export declare const DOCUMENT_UPDATE_RETENTION_MAX_COUNT = 10000; export declare const DOCUMENT_UPDATE_RETENTION_MAX_BYTES: number; export declare const documentUnreadCursorSchema: import("@sinclair/typebox").TString; export declare const documentCreatedBySchema: import("@sinclair/typebox").TObject<{ instanceId: import("@sinclair/typebox").TString; profileId: import("@sinclair/typebox").TOptional; }>; export type DocumentCreatedBy = Static; export declare const documentSchema: import("@sinclair/typebox").TObject<{ createdAt: import("@sinclair/typebox").TInteger; createdBy: import("@sinclair/typebox").TObject<{ instanceId: import("@sinclair/typebox").TString; profileId: import("@sinclair/typebox").TOptional; }>; firstRetainedVersion: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; mimeType: import("@sinclair/typebox").TString; state: import("@sinclair/typebox").TUnknown; unreadCursor: import("@sinclair/typebox").TOptional; updatedAt: import("@sinclair/typebox").TInteger; version: import("@sinclair/typebox").TInteger; }>; export type Document = Static; export declare const documentUpdateSchema: import("@sinclair/typebox").TObject<{ createdAt: import("@sinclair/typebox").TInteger; documentId: import("@sinclair/typebox").TString; id: import("@sinclair/typebox").TString; update: import("@sinclair/typebox").TUnknown; version: import("@sinclair/typebox").TInteger; }>; export type DocumentUpdate = Static; export declare const createDocumentRequestSchema: import("@sinclair/typebox").TObject<{ id: import("@sinclair/typebox").TOptional; identity: import("@sinclair/typebox").TOptional>; mimeType: import("@sinclair/typebox").TString; mutationId: import("@sinclair/typebox").TOptional; state: import("@sinclair/typebox").TUnknown; unreadCursor: import("@sinclair/typebox").TOptional; }>; export type CreateDocumentRequest = Static; export declare const writeDocumentRequestSchema: import("@sinclair/typebox").TObject<{ mimeType: import("@sinclair/typebox").TOptional; mutationId: import("@sinclair/typebox").TOptional; state: import("@sinclair/typebox").TUnknown; unreadCursor: import("@sinclair/typebox").TOptional>; update: import("@sinclair/typebox").TUnknown; }>; export type WriteDocumentRequest = Static; export declare const listDocumentUpdatesRequestSchema: import("@sinclair/typebox").TObject<{ afterVersion: import("@sinclair/typebox").TInteger; limit: import("@sinclair/typebox").TOptional; }>; export type ListDocumentUpdatesRequest = Static; export declare const documentResponseSchema: import("@sinclair/typebox").TObject<{ document: import("@sinclair/typebox").TObject<{ createdAt: import("@sinclair/typebox").TInteger; createdBy: import("@sinclair/typebox").TObject<{ instanceId: import("@sinclair/typebox").TString; profileId: import("@sinclair/typebox").TOptional; }>; firstRetainedVersion: import("@sinclair/typebox").TInteger; id: import("@sinclair/typebox").TString; mimeType: import("@sinclair/typebox").TString; state: import("@sinclair/typebox").TUnknown; unreadCursor: import("@sinclair/typebox").TOptional; updatedAt: import("@sinclair/typebox").TInteger; version: import("@sinclair/typebox").TInteger; }>; }>; export type DocumentResponse = Static; export declare const documentUpdatePageSchema: import("@sinclair/typebox").TObject<{ currentVersion: import("@sinclair/typebox").TInteger; firstRetainedVersion: import("@sinclair/typebox").TInteger; gap: import("@sinclair/typebox").TBoolean; hasMore: import("@sinclair/typebox").TBoolean; nextAfterVersion: import("@sinclair/typebox").TInteger; updates: import("@sinclair/typebox").TArray>; }>; export type DocumentUpdatePage = Static; export declare const documentErrorCodeSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"invalid_request">, import("@sinclair/typebox").TLiteral<"document_not_found">, import("@sinclair/typebox").TLiteral<"version_conflict">]>; export type DocumentErrorCode = Static; export declare const documentErrorResponseSchema: import("@sinclair/typebox").TObject<{ error: import("@sinclair/typebox").TObject<{ code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"invalid_request">, import("@sinclair/typebox").TLiteral<"document_not_found">, import("@sinclair/typebox").TLiteral<"version_conflict">]>; message: import("@sinclair/typebox").TString; }>; }>; export type DocumentErrorResponse = Static; export interface DocumentEvent { createdAt: number; data: { documentId: string; mutationId?: string; version: number; }; id: EventId; type: "document_changed"; }