local Promise = require(script.Promise) local types = require(script.types) local createRemotes = require(script.createRemotes) local builder = require(script.builder) local getSender = require(script.getSender) local loggerMiddleware = require(script.middleware.loggerMiddleware) local throttleMiddleware = require(script.middleware.throttleMiddleware) export type Promise = Promise.Promise export type PromiseConstructor = Promise.PromiseConstructor export type Middleware = types.Middleware export type RemoteBuilder = types.RemoteBuilder export type RemoteBuilderMetadata = types.RemoteBuilderMetadata export type RemoteBuilders = types.RemoteBuilders export type Remotes = types.Remotes export type RemoteMap = types.RemoteMap export type RemoteType = "event" | "function" export type Remote = types.Remote export type ClientToServer = types.ClientToServer export type ServerToClient = types.ServerToClient export type AsyncRemote = types.AsyncRemote export type ServerAsync = types.ServerAsync export type ClientAsync = types.ClientAsync --- @deprecated 1.2, use `ServerAsync` instead. export type ClientToServerAsync = types.ServerAsync --- @deprecated 1.2, use `ClientAsync` instead. export type ServerToClientAsync = types.ClientAsync return { remote = builder.remote, namespace = builder.namespace, createRemotes = createRemotes, loggerMiddleware = loggerMiddleware, throttleMiddleware = throttleMiddleware, getSender = getSender, }