import Joi from 'joi'; import { RoomEvent, StateEvent, ToDeviceMessageEvent } from '../types'; /** * The type of the power levels state event. */ export declare const STATE_EVENT_POWER_LEVELS = "m.room.power_levels"; /** * The types of type of the create event. */ export declare const STATE_EVENT_CREATE = "m.room.create"; /** * Check if the given event is a {@link StateEvent}. * * @param event - An event that is either a {@link RoomEvent} or a {@link StateEvent}. * @returns True, if the event is a {@link StateEvent}. */ export declare function isStateEvent(event: RoomEvent | StateEvent): event is StateEvent; /** * Check if the given event is a {@link RoomEvent}. * * @param event - An event that is either a {@link RoomEvent} or a {@link StateEvent}. * @returns True, if the event is a {@link RoomEvent}. */ export declare function isRoomEvent(event: RoomEvent | StateEvent): event is RoomEvent; /** * Check if the given value is a valid {@link RoomEvent}. * * @param event - The value to check * @returns true if value is a valid room event, else false. */ export declare function isValidRoomEvent(event: unknown): event is RoomEvent; /** * Check if the given value is a valid {@link StateEvent}. * * @param event - The value to check * @returns true if value is a valid state event, else false. */ export declare function isValidStateEvent(event: unknown): event is StateEvent; /** * Check if the given value is a valid {@link ToDeviceMessageEvent}. * * @param event - The value to check * @returns true if value is a valid to device message, else false. */ export declare function isValidToDeviceMessageEvent(event: unknown): event is ToDeviceMessageEvent; export declare const roomEventSchema: Joi.ObjectSchema; export declare const stateEventSchema: Joi.ObjectSchema; export declare const toDeviceMessageSchema: Joi.ObjectSchema; export type StateEventCreateContent = { room_version?: string; creator?: string; additional_creators?: string[]; type?: string; }; export declare const createEventSchema: Joi.ObjectSchema>; /** * Validates that `event` is has a valid structure for a * {@link StateEventCreateContent}. * @param event - The event to validate. * @returns True, if the event is valid. */ export declare function isValidCreateEventSchema(event: StateEvent | undefined): event is StateEvent; /** * The types of actions. */ export type PowerLevelsActions = 'invite' | 'kick' | 'ban' | 'redact'; /** * The content of an `m.room.power_levels` event. */ export type PowerLevelsStateEvent = { events?: { [key: string]: number; }; state_default?: number; events_default?: number; users?: { [key: string]: number; }; users_default?: number; ban?: number; invite?: number; kick?: number; redact?: number; }; export declare const powerLevelsEventSchema: Joi.ObjectSchema>; /** * Validates that `event` is has a valid structure for a * {@link PowerLevelsStateEvent}. * @param event - The event to validate. * @returns True, if the event is valid. */ export declare function isValidPowerLevelStateEvent(event: StateEvent): event is StateEvent;