@aptpod/iscp-ts
Version:
iSCP 2.0 client library for TypeScript
85 lines (84 loc) • 2.37 kB
TypeScript
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>;
}