import { type Static } from "@sinclair/typebox"; export declare const MAX_SHARED_FOLDER_NODES = 10000; /** One virtual folder replicated through a Murmur folder group. */ export declare const sharedFolderNodeSchema: import("@sinclair/typebox").TObject<{ description: import("@sinclair/typebox").TOptional; icon: import("@sinclair/typebox").TOptional; id: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; /** Zero-based position among the node's direct sibling folders. */ order: import("@sinclair/typebox").TInteger; parentId: import("@sinclair/typebox").TOptional; rules: import("@sinclair/typebox").TOptional; }>; export type SharedFolderNode = Static; /** Current complete virtual tree for one shared root. Local paths never cross the wire. */ export declare const sharedFolderStateSchema: import("@sinclair/typebox").TObject<{ folders: import("@sinclair/typebox").TArray; icon: import("@sinclair/typebox").TOptional; id: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; /** Zero-based position among the node's direct sibling folders. */ order: import("@sinclair/typebox").TInteger; parentId: import("@sinclair/typebox").TOptional; rules: import("@sinclair/typebox").TOptional; }>>; rootId: import("@sinclair/typebox").TString; }>; export type SharedFolderState = Static; /** Immutable Murmur group descriptor: the invitation package carries current initial state. */ export declare const folderShareDescriptorSchema: import("@sinclair/typebox").TObject<{ kind: import("@sinclair/typebox").TLiteral<"folder_share">; /** Stable creation intent used to recover a creator-side crash after Murmur persists. */ shareId: import("@sinclair/typebox").TString; state: import("@sinclair/typebox").TObject<{ folders: import("@sinclair/typebox").TArray; icon: import("@sinclair/typebox").TOptional; id: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; /** Zero-based position among the node's direct sibling folders. */ order: import("@sinclair/typebox").TInteger; parentId: import("@sinclair/typebox").TOptional; rules: import("@sinclair/typebox").TOptional; }>>; rootId: import("@sinclair/typebox").TString; }>; version: import("@sinclair/typebox").TLiteral<1>; }>; export type FolderShareDescriptor = Static; export declare const folderShareOperationSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ node: import("@sinclair/typebox").TObject<{ description: import("@sinclair/typebox").TOptional; icon: import("@sinclair/typebox").TOptional; id: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; /** Zero-based position among the node's direct sibling folders. */ order: import("@sinclair/typebox").TInteger; parentId: import("@sinclair/typebox").TOptional; rules: import("@sinclair/typebox").TOptional; }>; type: import("@sinclair/typebox").TLiteral<"upsert">; }>, import("@sinclair/typebox").TObject<{ folderId: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"remove">; }>]>; export type FolderShareOperation = Static; /** * One idempotent semantic operation batch. * * Murmur orders each recipient inbox but not the whole group. Each folder is an independent * last-writer-wins register keyed by this Lamport clock and authenticated sender identity, so * concurrent changes to different folders merge instead of one complete tree replacing another. */ export declare const folderSharePacketSchema: import("@sinclair/typebox").TObject<{ clock: import("@sinclair/typebox").TInteger; operationId: import("@sinclair/typebox").TString; operations: import("@sinclair/typebox").TArray; icon: import("@sinclair/typebox").TOptional; id: import("@sinclair/typebox").TString; name: import("@sinclair/typebox").TString; /** Zero-based position among the node's direct sibling folders. */ order: import("@sinclair/typebox").TInteger; parentId: import("@sinclair/typebox").TOptional; rules: import("@sinclair/typebox").TOptional; }>; type: import("@sinclair/typebox").TLiteral<"upsert">; }>, import("@sinclair/typebox").TObject<{ folderId: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"remove">; }>]>>; type: import("@sinclair/typebox").TLiteral<"operations">; version: import("@sinclair/typebox").TLiteral<1>; }>; export type FolderSharePacket = Static;