import { BaseEvent } from "./base_event.js"; export declare const protobufPackage = "materi.events.v1"; export declare enum DocumentType { DOCUMENT_TYPE_UNSPECIFIED = "DOCUMENT_TYPE_UNSPECIFIED", TEXT = "TEXT", SPREADSHEET = "SPREADSHEET", PRESENTATION = "PRESENTATION", DIAGRAM = "DIAGRAM", WHITEBOARD = "WHITEBOARD", UNRECOGNIZED = "UNRECOGNIZED" } export declare function documentTypeFromJSON(object: any): DocumentType; export declare function documentTypeToJSON(object: DocumentType): string; export declare enum DocumentStatus { DOCUMENT_STATUS_UNSPECIFIED = "DOCUMENT_STATUS_UNSPECIFIED", DRAFT = "DRAFT", IN_REVIEW = "IN_REVIEW", APPROVED = "APPROVED", PUBLISHED = "PUBLISHED", ARCHIVED = "ARCHIVED", UNRECOGNIZED = "UNRECOGNIZED" } export declare function documentStatusFromJSON(object: any): DocumentStatus; export declare function documentStatusToJSON(object: DocumentStatus): string; export declare enum UpdateType { UPDATE_TYPE_UNSPECIFIED = "UPDATE_TYPE_UNSPECIFIED", METADATA = "METADATA", CONTENT = "CONTENT", PERMISSIONS = "PERMISSIONS", STATUS = "STATUS", UNRECOGNIZED = "UNRECOGNIZED" } export declare function updateTypeFromJSON(object: any): UpdateType; export declare function updateTypeToJSON(object: UpdateType): string; export declare enum DeletionType { DELETION_TYPE_UNSPECIFIED = "DELETION_TYPE_UNSPECIFIED", SOFT_DELETE = "SOFT_DELETE", HARD_DELETE = "HARD_DELETE", UNRECOGNIZED = "UNRECOGNIZED" } export declare function deletionTypeFromJSON(object: any): DeletionType; export declare function deletionTypeToJSON(object: DeletionType): string; export declare enum SharePermission { SHARE_PERMISSION_UNSPECIFIED = "SHARE_PERMISSION_UNSPECIFIED", VIEW = "VIEW", COMMENT = "COMMENT", EDIT = "EDIT", ADMIN = "ADMIN", UNRECOGNIZED = "UNRECOGNIZED" } export declare function sharePermissionFromJSON(object: any): SharePermission; export declare function sharePermissionToJSON(object: SharePermission): string; export declare enum ExportFormat { EXPORT_FORMAT_UNSPECIFIED = "EXPORT_FORMAT_UNSPECIFIED", PDF = "PDF", DOCX = "DOCX", MARKDOWN = "MARKDOWN", HTML = "HTML", JSON = "JSON", UNRECOGNIZED = "UNRECOGNIZED" } export declare function exportFormatFromJSON(object: any): ExportFormat; export declare function exportFormatToJSON(object: ExportFormat): string; /** DocumentCreatedEvent - Published when a new document is created */ export interface DocumentCreatedEvent { /** Base event fields */ base?: BaseEvent | undefined; /** Document-specific fields */ documentId: string; workspaceId: string; title: string; ownerId: string; createdAt?: Date | undefined; documentType: DocumentType; /** Optional, if created from template */ templateId: string; } /** DocumentUpdatedEvent - Published when document metadata is updated */ export interface DocumentUpdatedEvent { /** Base event fields */ base?: BaseEvent | undefined; /** Document fields */ documentId: string; workspaceId: string; /** Updated fields (optional) */ title?: string | undefined; description?: string | undefined; status?: DocumentStatus | undefined; tags: string[]; updatedAt?: Date | undefined; /** Change metadata */ updatedBy: string; updateType: UpdateType; } /** DocumentDeletedEvent - Published when a document is deleted */ export interface DocumentDeletedEvent { /** Base event fields */ base?: BaseEvent | undefined; /** Document fields */ documentId: string; workspaceId: string; ownerId: string; deletedAt?: Date | undefined; /** Deletion metadata */ deletedBy: string; /** soft_delete or hard_delete */ deletionType: DeletionType; permanent: boolean; } /** DocumentSharedEvent - Published when a document is shared with users */ export interface DocumentSharedEvent { /** Base event fields */ base?: BaseEvent | undefined; /** Document fields */ documentId: string; workspaceId: string; sharedBy: string; sharedAt?: Date | undefined; /** Sharing details */ recipients: ShareRecipient[]; permission: SharePermission; expiresAt?: Date | undefined; /** Optional message to recipients */ message: string; } /** DocumentAccessRevokedEvent - Published when document access is revoked */ export interface DocumentAccessRevokedEvent { /** Base event fields */ base?: BaseEvent | undefined; /** Document fields */ documentId: string; workspaceId: string; revokedBy: string; revokedAt?: Date | undefined; /** Revocation details */ userIds: string[]; reason: string; } /** DocumentExportedEvent - Published when a document is exported */ export interface DocumentExportedEvent { /** Base event fields */ base?: BaseEvent | undefined; /** Document fields */ documentId: string; workspaceId: string; exportedBy: string; exportedAt?: Date | undefined; /** Export details */ format: ExportFormat; exportUrl: string; fileSizeBytes: number; checksumSha256: string; } export interface ShareRecipient { userId: string; email: string; permission: SharePermission; } export declare const DocumentCreatedEvent: MessageFns; export declare const DocumentUpdatedEvent: MessageFns; export declare const DocumentDeletedEvent: MessageFns; export declare const DocumentSharedEvent: MessageFns; export declare const DocumentAccessRevokedEvent: MessageFns; export declare const DocumentExportedEvent: MessageFns; export declare const ShareRecipient: MessageFns; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends { $case: string; } ? { [K in keyof Omit]?: DeepPartial; } & { $case: T["$case"]; } : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & { [K in Exclude>]: never; }; export interface MessageFns { fromJSON(object: any): T; toJSON(message: T): unknown; create, I>>(base?: I): T; fromPartial, I>>(object: I): T; } export {}; //# sourceMappingURL=document_events.d.ts.map