import { Deserializable, GetSerialized, Serializable } from "@skeldjs/protocol"; import { PacketContext, Perspective } from "../../worker"; import { Plugin } from "../../handlers"; import { MethodDecorator } from "../types"; /** * The direction that a message filter for a perspective is going. */ export declare enum MessageFilterDirection { /** * The message is going _to_ the perspective, either from the main room or * another perspective, */ Incoming = 0, /** * The message is coming _from_ the perspective, to either the main room * or another perspective. */ Outgoing = 1 } export declare type MessageFilterCallback = (message: Message, perspective: Perspective, direction: MessageFilterDirection, ctx: PacketContext) => any; export interface PerspectiveFilterRegisteredMessageFilterInfo { messageClass: Deserializable; handler: MessageFilterCallback; } export declare function MessageFilter(messageClass: T): MethodDecorator>>; export declare function getPerspectiveFilterMessageFilters(pluginCtr: typeof Plugin | Plugin): PerspectiveFilterRegisteredMessageFilterInfo[];