mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-03 22:37:03 +00:00
[ts3-nodejs-library] Add and enhance typings, remove unneeded dependency (#34873)
* Add ts3-nodejs-library typings * Use files instead of include * Fix json error in tsconfig * Require at least TypeScript Version 3.0 * Fix typescript version header * Remove duplicate typings in subclasses of the abstract class * Add constructor list typings * type-safe events construct, remove unneeded steam dependency and more * Add more typings * Correctly reference node types for Buffer and Fix linting issues * Type 'close' and 'error' event * Type 'clientdisconnect', 'flooding', 'debug' and ready events
This commit is contained in:
committed by
Pranav Senthilnathan
parent
b63d70da01
commit
fc57ce331b
+110
-6
@@ -1,3 +1,5 @@
|
||||
/// <reference types="node" />
|
||||
|
||||
import { EventEmitter } from 'events';
|
||||
import TeamSpeakChannel = require('./property/Channel');
|
||||
import TeamSpeakClient = require('./property/Client');
|
||||
@@ -5,9 +7,6 @@ import TeamSpeakServer = require('./property/Server');
|
||||
import TeamSpeakServerGroup = require('./property/ServerGroup');
|
||||
import TeamSpeakChannelGroup = require('./property/ChannelGroup');
|
||||
|
||||
// For the buffer type.
|
||||
import * as stream from 'steam';
|
||||
|
||||
// We need this namespace, becaue we can't just export the interface directly,
|
||||
// as it would conflict with export = TeamSpeak3.
|
||||
declare namespace TeamSpeak3 {
|
||||
@@ -29,6 +28,111 @@ declare namespace TeamSpeak3 {
|
||||
/** Maximum wait time for the connection to get established. Defaults to 20000. */
|
||||
readyTimeout?: number;
|
||||
}
|
||||
|
||||
enum TargetMode {
|
||||
CLIENT = 1,
|
||||
CHANNEL = 2,
|
||||
VIRTUAL_SERVER = 3
|
||||
}
|
||||
|
||||
enum ClientType {
|
||||
CLIENT = 0,
|
||||
QUERY = 1
|
||||
}
|
||||
|
||||
interface MessageData {
|
||||
invoker: TeamSpeakClient;
|
||||
msg: string;
|
||||
targetmode: TargetMode;
|
||||
}
|
||||
|
||||
interface WhoAmIResponse {
|
||||
virtualserver_status: string;
|
||||
virtualserver_id: number;
|
||||
virtualserver_unique_identifier: string;
|
||||
virtualserver_port: number;
|
||||
client_id: number;
|
||||
client_channel_id: number;
|
||||
client_nickname: string;
|
||||
client_database_id: number;
|
||||
cient_login_name: string;
|
||||
client_unique_identifier: string;
|
||||
client_origin_server_id: number;
|
||||
}
|
||||
|
||||
interface ClientMovedResponse {
|
||||
client: TeamSpeakClient;
|
||||
channel: TeamSpeakChannel;
|
||||
reasonid: number;
|
||||
}
|
||||
|
||||
interface ServerGroupClientListResponse {
|
||||
cldbid: number;
|
||||
client_nickname: string;
|
||||
client_unique_identifier: string;
|
||||
}
|
||||
|
||||
interface DisconnectedClient {
|
||||
clid: number;
|
||||
cid: number;
|
||||
client_database_id: number;
|
||||
client_nickname: string;
|
||||
client_type: ClientType;
|
||||
client_away: number;
|
||||
client_away_message: string | undefined;
|
||||
client_flag_talking: number;
|
||||
client_input_muted: number;
|
||||
client_output_muted: number;
|
||||
client_input_hardware: number;
|
||||
client_output_hardware: number;
|
||||
client_talk_power: number;
|
||||
client_is_talker: number;
|
||||
client_is_priority_speaker: number;
|
||||
client_is_recording: number;
|
||||
client_is_channel_commander: number;
|
||||
client_unique_identifier: string;
|
||||
client_servergroups: number[];
|
||||
client_channel_group_id: number;
|
||||
client_channel_group_inherited_channel_id: number;
|
||||
client_version: string;
|
||||
client_platform: string;
|
||||
client_idle_time: number;
|
||||
client_created: number;
|
||||
client_lastconnected: number;
|
||||
client_icon_id: number;
|
||||
client_country: string | undefined;
|
||||
connection_client_ip: string;
|
||||
}
|
||||
|
||||
interface DisconnectEvent {
|
||||
cfid: number;
|
||||
ctid: number;
|
||||
reasonid: number;
|
||||
reasonmsg: string;
|
||||
clid: number;
|
||||
}
|
||||
|
||||
interface ClientDisconnectResponse {
|
||||
client: DisconnectedClient;
|
||||
event: DisconnectEvent;
|
||||
}
|
||||
|
||||
interface DebugInformation {
|
||||
type: string;
|
||||
data: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface TeamSpeak3 {
|
||||
// Type-safe events.
|
||||
on(event: 'textmessage', listener: (data: TeamSpeak3.MessageData) => void): this;
|
||||
on(event: 'clientconnect', listener: (data: { client: TeamSpeakClient }) => void): this;
|
||||
on(event: 'clientmoved', listener: (data: TeamSpeak3.ClientMovedResponse) => void): this;
|
||||
on(event: 'clientdisconnect', listener: (data: TeamSpeak3.ClientDisconnectResponse) => void): this;
|
||||
on(event: 'close' | 'error' | 'flooding', listener: (err: Error) => void): this;
|
||||
on(event: 'ready', listener: () => void): this;
|
||||
on(event: 'debug', listener: (debug: TeamSpeak3.DebugInformation) => void): this;
|
||||
on(event: string, listener: () => any): this;
|
||||
}
|
||||
|
||||
declare class TeamSpeak3 extends EventEmitter {
|
||||
@@ -143,7 +247,7 @@ declare class TeamSpeak3 extends EventEmitter {
|
||||
/**
|
||||
* Displays information about your current ServerQuery connection including your loginname, etc.
|
||||
*/
|
||||
whoami(): Promise<any>;
|
||||
whoami(): Promise<TeamSpeak3.WhoAmIResponse>;
|
||||
|
||||
/**
|
||||
* Displays detailed configuration information about the selected virtual server
|
||||
@@ -216,7 +320,7 @@ declare class TeamSpeak3 extends EventEmitter {
|
||||
* Displays the IDs of all clients currently residing in the server group.
|
||||
* @param - the ServerGroup id
|
||||
*/
|
||||
serverGroupClientList(sgid: number): Promise<any>;
|
||||
serverGroupClientList(sgid: number): Promise<TeamSpeak3.ServerGroupClientListResponse[] | TeamSpeak3.ServerGroupClientListResponse> | null;
|
||||
|
||||
/**
|
||||
* Adds the client to the server group specified with sgid.
|
||||
@@ -846,7 +950,7 @@ declare class TeamSpeak3 extends EventEmitter {
|
||||
* Lists all Clients with a given Filter
|
||||
* @param - Filter Object
|
||||
*/
|
||||
clientList(filter: any): Promise<TeamSpeakClient[]>;
|
||||
clientList(filter?: any): Promise<TeamSpeakClient[]>;
|
||||
|
||||
/**
|
||||
* Displays a list of files and directories stored in the specified channels file repository.
|
||||
|
||||
Vendored
+1
@@ -2,6 +2,7 @@
|
||||
// Project: https://github.com/Multivit4min/TS3-NodeJS-Library
|
||||
// Definitions by: Pascal Sthamer <https://github.com/P4sca1>
|
||||
// David Kartnaller <https://github.com/Multivit4min>
|
||||
// Mattis Krämer <https://github.com/Mattzimann>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.0
|
||||
|
||||
|
||||
@@ -11,6 +11,9 @@ interface ChannelListResponse {
|
||||
declare class TeamSpeakChannel extends Abstract {
|
||||
constructor(parent: TeamSpeak3, list: ChannelListResponse)
|
||||
|
||||
/** Returns the Name of the channel */
|
||||
name: string;
|
||||
|
||||
/**
|
||||
* Returns the ID of the Channel
|
||||
* @returns the Channels ID
|
||||
|
||||
+16
@@ -11,9 +11,25 @@ interface ClientListResponse {
|
||||
client_unique_identifier: string;
|
||||
}
|
||||
|
||||
declare enum ClientType {
|
||||
CLIENT = 0,
|
||||
QUERY = 1
|
||||
}
|
||||
|
||||
declare class TeamSpeakClient extends Abstract {
|
||||
constructor(parent: TeamSpeak3, list: ClientListResponse)
|
||||
|
||||
/** Returns the Client Type: 0 = CLIENT, 1 = QUERY */
|
||||
type: ClientType;
|
||||
/** Client Nickname */
|
||||
nickname: string;
|
||||
/** Array of client Servergroups */
|
||||
servergroups: number[];
|
||||
/** The ChannelID of the client */
|
||||
cid: number;
|
||||
/** The UID of the client */
|
||||
client_unique_identifier: string;
|
||||
|
||||
/**
|
||||
* Returns the Database ID of the Client
|
||||
* @returns the Clients Database ID
|
||||
|
||||
Reference in New Issue
Block a user