UNPKG

@litert/televoke

Version:
78 lines 3.17 kB
/** * Copyright 2025 Angus.Fenying <fenying@litert.org> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import * as Shared from './Shared.decl'; import * as E from './Errors'; import type * as dT from '../transporters/Transporter.decl'; import { EventEmitter } from 'node:events'; import * as v2 from './Encodings/v2'; export interface IChannelEvents extends Shared.IDefaultEvents { close(): void; ['api_call'](callback: (response: v2.IDataChunkField | E.TelevokeError | E.TvErrorResponse) => void, name: string, args: Buffer[], sequence: number): void; ['push_message'](message: Buffer[], sequence: number): void; end(): void; finish(): void; warning(e: unknown): void; } export declare const decoder: v2.TvDecoderV2; export declare const encoder: v2.TvEncoderV2; export interface IPendingRequests { cmd: v2.ECommand; seq: number; timer?: NodeJS.Timeout; callback: (cmd: v2.ICommandPacket) => void; } export declare abstract class AbstractTvChannelV2 extends EventEmitter implements Shared.IChannelBase<IChannelEvents> { readonly id: number; readonly transporter: dT.ITransporter & Shared.ITransporter; timeout: number; protected _seqCounter: number; readonly context: Record<string, unknown>; /** * The context of requests sent out, waiting for replies. */ protected _sentRequests: Record<string, IPendingRequests>; /** * The qty of received and not responded requests, waiting for replies. */ protected _recvRequests: number; private _state; ended: boolean; get isMessageSupported(): boolean; get isBinaryStreamSupported(): boolean; get finished(): boolean; get writable(): boolean; readonly streams: Shared.IStreamManager; constructor(id: number, transporter: dT.ITransporter & Shared.ITransporter, timeout: number, streamManagerFactory: Shared.IStreamManagerFactory); private readonly _onData; private readonly _onConnError; private readonly _onConnClose; private readonly _onRemoteEnded; private readonly _onLocalEnded; private _setup; private _end; private _tryClean; private _isIdle; private _onResponse; private _reply; private _onRequest; protected _setTimeout(cmd: v2.ECommand, seq: number, callback: (packet: v2.ICommandPacket) => any): void; openBinaryStream(): Shared.IBinaryReadStream; ping(message?: Buffer | string): Promise<Buffer>; sendBinaryChunk(streamId: number, index: number | false, chunk: Buffer | null): Promise<void>; sendMessage(message: string | Buffer): Promise<void>; close(): void; } //# sourceMappingURL=Channel.impl.d.ts.map