/** * Global permissions for server-wide operations. */ export type GlobalPermissions = { /** Can manage server configuration */ ManageServers: boolean; /** Can read server information */ ReadServers: boolean; /** Can manage users */ ManageUsers: boolean; /** Can read user information */ ReadUsers: boolean; /** Can manage streams */ ManageStreams: boolean; /** Can read stream information */ ReadStreams: boolean; /** Can manage topics */ ManageTopics: boolean; /** Can read topic information */ ReadTopics: boolean; /** Can poll messages */ PollMessages: boolean; /** Can send messages */ SendMessages: boolean; }; /** * Result of deserializing global permissions. */ type GlobalPermissionsDeserialized = { /** Number of bytes consumed */ bytesRead: number; /** Deserialized permissions */ data: GlobalPermissions; }; /** * Permissions for a specific topic. */ export type TopicPermissions = { /** Can manage the topic */ manage: boolean; /** Can read the topic */ read: boolean; /** Can poll messages from the topic */ pollMessages: boolean; /** Can send messages to the topic */ sendMessages: boolean; }; /** * Topic permissions with topic identifier. */ export type TopicPerms = { /** Topic ID */ topicId: number; /** Topic permissions */ permissions: TopicPermissions; }; /** Result of deserializing topic permissions */ type TopicPermissionsDeserialized = { bytesRead: number; } & TopicPerms; /** * Permissions for a specific stream. */ export type StreamPermissions = { /** Can manage the stream */ manageStream: boolean; /** Can read the stream */ readStream: boolean; /** Can manage topics within the stream */ manageTopics: boolean; /** Can read topics within the stream */ readTopics: boolean; /** Can poll messages from the stream */ pollMessages: boolean; /** Can send messages to the stream */ sendMessages: boolean; }; /** * Stream permissions with stream identifier and topic permissions. */ export type StreamPerms = { /** Stream ID */ streamId: number; /** Stream-level permissions */ permissions: StreamPermissions; /** Topic-specific permissions within the stream */ topics: TopicPerms[]; }; /** Result of deserializing stream permissions */ type StreamPermissionsDeserialized = { bytesRead: number; } & StreamPerms; /** * Complete user permissions including global and stream-level permissions. */ export type UserPermissions = { /** Global permissions */ global: GlobalPermissions; /** Stream-specific permissions */ streams: StreamPerms[]; }; /** * Deserializes global permissions from a buffer. * * @param p - Buffer containing serialized permissions * @param pos - Starting position in the buffer * @returns Object with bytes read and deserialized permissions */ export declare const deserializeGlobalPermissions: (p: Buffer, pos?: number) => GlobalPermissionsDeserialized; /** * Serializes global permissions to a buffer. * * @param p - Global permissions to serialize * @returns Serialized permissions buffer (10 bytes) */ export declare const serializeGlobalPermission: (p: GlobalPermissions) => Buffer; /** * Deserializes topic permissions from a buffer. * * @param p - Buffer containing serialized permissions * @param pos - Starting position in the buffer * @returns Object with bytes read, topic ID, and permissions */ export declare const deserializeTopicPermissions: (p: Buffer, pos?: number) => TopicPermissionsDeserialized; /** * Serializes topic permissions to a buffer. * * @param p - Topic permissions to serialize * @returns Serialized permissions buffer (8 bytes) */ export declare const serializeTopicPermissions: (p: TopicPerms) => Buffer; /** * Deserializes stream permissions from a buffer. * Includes nested topic permissions if present. * * @param p - Buffer containing serialized permissions * @param pos - Starting position in the buffer * @returns Object with bytes read, stream ID, permissions, and topics */ export declare const deserializeStreamPermissions: (p: Buffer, pos?: number) => StreamPermissionsDeserialized; /** * Serializes stream permissions to a buffer. * Includes nested topic permissions if present. * * @param p - Stream permissions to serialize * @returns Serialized permissions buffer */ export declare const serializeStreamPermissions: (p: StreamPerms) => Buffer; /** * Deserializes complete user permissions from a buffer. * Includes global permissions and stream-level permissions. * * @param p - Buffer containing serialized permissions * @param pos - Starting position in the buffer * @returns Deserialized user permissions */ export declare const deserializePermissions: (p: Buffer, pos?: number) => UserPermissions; /** * Serializes user permissions to a buffer. * * @param p - User permissions to serialize * @returns Serialized permissions buffer */ export declare const serializePermissions: (p: UserPermissions) => Buffer; export {}; //# sourceMappingURL=permissions.utils.d.ts.map