UNPKG

@aptpod/iscp-ts

Version:

iSCP 2.0 client library for TypeScript

85 lines (84 loc) 2.37 kB
import { NegotiationParams } from './negotiation-params'; /** * トランスポートの名前です。 * @category Enum * @enum */ export declare const TRANSPORT_NAME: { /** WebSocket。 */ readonly WEBSOCKET: "WebSocket"; /** WebTransport。 */ readonly WEB_TRANSPORT: "WebTransport"; }; /** * {@link TRANSPORT_NAME}の型です。 * @category Enum */ export type TransportName = (typeof TRANSPORT_NAME)[keyof typeof TRANSPORT_NAME]; /** * iSCPメッセージのWriterインターフェースです。 */ export interface Writer { /** * iSCPの1メッセージ分を書き込みます。 * @param message 1メッセージ */ write(message: Uint8Array): Promise<void>; } /** * iSCPメッセージのReaderインターフェースです。 */ export interface Reader { /** * iSCPの1メッセージ分を読み込みます。 * @returns 1メッセージ */ read(): Promise<Uint8Array>; } /** * iSCPのトランスポートインターフェースです。 * @category Connector */ export interface Transport extends Reader, Writer { /** * トランスポートを切断します。 */ close(): Promise<void>; /** * ネゴシエーションパラメータを取得します。 * @returns ネゴシエーションパラメータ */ get negotiationParams(): NegotiationParams; /** * アドレスを取得します。 * @returns アドレス */ get address(): string; /** * トランスポートの名前を取得します。 * @returns トランスポートの名前 */ get name(): TransportName; } /** * @todo Unreliable のインターフェースの説明をする */ export declare abstract class Unreliable { abstract getUnreliable(): { reader: Reader; writer: Writer; }; } /** * iSCPコネクターのインターフェースです。 * @category Connector */ export interface Connector { /** * iSCPを使って接続します。 * @param {string} address 接続先のアドレス。`127.0.0.1:8080` 形式。 * @param {NegotiationParams} negotiationParams ネゴシエーションパラメータ。 * @returns {Transport} iSCPのトランスポート。 */ connect(address: string, negotiationParams: NegotiationParams): Promise<Transport>; }