import { c as e, RPC as a, RPCStream as t, RPCRequestStream as r } from "hrpc/runtime"
import { getEncoding as i } from "./messages.js"
const s = new Map([
["@media/create-chat-image-preview", 0],
[0, "@media/create-chat-image-preview"],
["@media/create-chat-video-preview", 1],
[1, "@media/create-chat-video-preview"],
["@media/create-chat-link-preview", 2],
[2, "@media/create-chat-link-preview"],
["@media/create-profile-avatar", 3],
[3, "@media/create-profile-avatar"],
["@media/create-room-avatar", 4],
[4, "@media/create-room-avatar"],
["@media/decode-image", 5],
[5, "@media/decode-image"],
])
class c {
constructor(c) {
;((this._stream = c),
(this._handlers = []),
(this._requestEncodings = new Map([
["@media/create-chat-image-preview", i("@media/create-chat-image-preview-request")],
["@media/create-chat-video-preview", i("@media/create-chat-video-preview-request")],
["@media/create-chat-link-preview", i("@media/create-chat-link-preview-request")],
["@media/create-profile-avatar", i("@media/create-profile-avatar-request")],
["@media/create-room-avatar", i("@media/create-room-avatar-request")],
["@media/decode-image", i("@media/decode-image-request")],
])),
(this._responseEncodings = new Map([
["@media/create-chat-image-preview", i("@media/create-chat-image-preview-response")],
["@media/create-chat-video-preview", i("@media/create-chat-video-preview-response")],
["@media/create-chat-link-preview", i("@media/create-chat-link-preview-response")],
["@media/create-profile-avatar", i("@media/create-profile-avatar-response")],
["@media/create-room-avatar", i("@media/create-room-avatar-response")],
["@media/decode-image", i("@media/decode-image-response")],
])),
(this._rpc = new a(c, async (a) => {
const i = s.get(a.command),
c = this._responseEncodings.get(i),
n = this._requestEncodings.get(i)
if (this._requestIsSend(i)) {
const t = a.data ? e.decode(n, a.data) : null
return void (await this._handlers[i](t))
}
if (!this._requestIsStream(i) && !this._responseIsStream(i)) {
const t = a.data ? e.decode(n, a.data) : null,
r = await this._handlers[i](t)
a.reply(e.encode(c, r))
}
if (!this._requestIsStream(i) && this._responseIsStream(i)) {
const r = a.data ? e.decode(n, a.data) : null,
s = new t(null, null, a.createResponseStream(), c)
;((s.data = r), await this._handlers[i](s))
}
if (this._requestIsStream(i) && !this._responseIsStream(i)) {
const t = new r(a, c, a.createRequestStream(), n),
s = await this._handlers[i](t)
a.reply(e.encode(c, s))
}
if (this._requestIsStream(i) && this._responseIsStream(i)) {
const e = new r(a, c, a.createRequestStream(), n, a.createResponseStream(), c)
await this._handlers[i](e)
}
})))
}
async _call(a, t) {
const r = this._requestEncodings.get(a),
i = this._responseEncodings.get(a),
c = this._rpc.request(s.get(a)),
n = e.encode(r, t)
return (c.send(n), e.decode(i, await c.reply()))
}
_callSync(a, i) {
const c = this._requestEncodings.get(a),
n = this._responseEncodings.get(a)
if (this._requestIsSend(a)) {
const t = e.encode(c, i)
this._rpc.event(s.get(a)).send(t)
}
const d = this._rpc.request(s.get(a))
if (!this._requestIsStream(a) && this._responseIsStream(a)) {
const a = e.encode(c, i)
return (d.send(a), new t(d.createResponseStream(), n))
}
return this._requestIsStream(a) && !this._responseIsStream(a)
? new r(d, n, null, null, d.createRequestStream(), c)
: this._requestIsStream(a) && this._responseIsStream(a)
? new r(d, n, d.createResponseStream(), n, d.createRequestStream(), c)
: void 0
}
async createChatImagePreview(e) {
return this._call("@media/create-chat-image-preview", e)
}
async createChatVideoPreview(e) {
return this._call("@media/create-chat-video-preview", e)
}
async createChatLinkPreview(e) {
return this._call("@media/create-chat-link-preview", e)
}
async createProfileAvatar(e) {
return this._call("@media/create-profile-avatar", e)
}
async createRoomAvatar(e) {
return this._call("@media/create-room-avatar", e)
}
async decodeImage(e) {
return this._call("@media/decode-image", e)
}
onCreateChatImagePreview(e) {
this._handlers["@media/create-chat-image-preview"] = e
}
onCreateChatVideoPreview(e) {
this._handlers["@media/create-chat-video-preview"] = e
}
onCreateChatLinkPreview(e) {
this._handlers["@media/create-chat-link-preview"] = e
}
onCreateProfileAvatar(e) {
this._handlers["@media/create-profile-avatar"] = e
}
onCreateRoomAvatar(e) {
this._handlers["@media/create-room-avatar"] = e
}
onDecodeImage(e) {
this._handlers["@media/decode-image"] = e
}
_requestIsStream(e) {
return [].includes(e)
}
_responseIsStream(e) {
return [].includes(e)
}
_requestIsSend(e) {
return [].includes(e)
}
}
export default c