import { Networkable } from "@skeldjs/core"; import { MessageDirection, PacketDecoder } from "@skeldjs/protocol"; import { HazelReader } from "@skeldjs/util"; import { Plugin } from "../../handlers"; import { BaseReactorRpcMessage } from "../BaseReactorRpcMessage"; import { MethodDecorator } from "../types"; export declare type ReactorRpcConstructor = { new (...args: any): T; Deserialize(reader: HazelReader, direction: MessageDirection, decoder: PacketDecoder): T; messageType: "reactorRpc"; modId: string; messageTag: number; }; export interface PluginRegisteredRpcHandlerInfo { handler: (component: Networkable, rpc: BaseReactorRpcMessage) => any; reactorRpc: ReactorRpcConstructor; } export declare function ReactorRpcHandler(reactorRpc: ReactorRpcConstructor): MethodDecorator<(component: ComponentType, rpc: RpcType) => any>; export declare function getPluginReactorRpcHandlers(pluginCtr: typeof Plugin | Plugin): PluginRegisteredRpcHandlerInfo[];