mirror of
https://github.com/meshcore-dev/meshcore.js.git
synced 2026-04-20 22:13:49 +00:00
Merge branch 'master' into add-typescript-declarations
This commit is contained in:
commit
8bf1d728bf
1 changed files with 185 additions and 0 deletions
185
index.d.ts
vendored
Normal file
185
index.d.ts
vendored
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
/**
|
||||
* TypeScript declarations for @liamcottle/meshcore.js
|
||||
*/
|
||||
|
||||
declare module '@liamcottle/meshcore.js' {
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
export class Connection extends EventEmitter {
|
||||
connect(): Promise<void>;
|
||||
close(): Promise<void>;
|
||||
|
||||
// High-level API methods
|
||||
getSelfInfo(timeout?: number): Promise<SelfInfo>;
|
||||
getWaitingMessages(): Promise<Message[]>;
|
||||
getChannels(): Promise<Channel[]>;
|
||||
getContacts(since?: number): Promise<Contact[]>;
|
||||
syncNextMessage(): Promise<void>;
|
||||
|
||||
// Message sending
|
||||
sendTextMessage(publicKey: Buffer, text: string): Promise<void>;
|
||||
sendChannelTextMessage(channelIdx: number, text: string): Promise<void>;
|
||||
|
||||
// Contact lookup
|
||||
findContactByPublicKeyPrefix(prefix: Buffer): Promise<Contact | null>;
|
||||
|
||||
// Frame handling (can be overridden in subclasses)
|
||||
onFrameReceived(frame: Buffer): void;
|
||||
|
||||
// Events
|
||||
on(event: 'connected', listener: () => void): this;
|
||||
on(event: 'disconnected', listener: () => void): this;
|
||||
on(event: number, listener: (data: any) => void): this;
|
||||
on(event: string | number, listener: (...args: any[]) => void): this;
|
||||
|
||||
emit(event: string | number, ...args: any[]): boolean;
|
||||
}
|
||||
|
||||
export class NodeJSSerialConnection extends Connection {
|
||||
constructor(port: string);
|
||||
}
|
||||
|
||||
export class WebSerialConnection extends Connection {
|
||||
constructor();
|
||||
}
|
||||
|
||||
export class TCPConnection extends Connection {
|
||||
constructor(host: string, port: number);
|
||||
}
|
||||
|
||||
export class WebBleConnection extends Connection {
|
||||
constructor();
|
||||
}
|
||||
|
||||
export class SerialConnection extends Connection {
|
||||
constructor();
|
||||
}
|
||||
|
||||
// Type definitions
|
||||
export interface SelfInfo {
|
||||
publicKey: Buffer;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface Message {
|
||||
pubKeyPrefix: Buffer;
|
||||
pathLen: number;
|
||||
txtType: number;
|
||||
senderTimestamp: number;
|
||||
text: string;
|
||||
}
|
||||
|
||||
export interface Channel {
|
||||
channelIdx: number;
|
||||
name: string;
|
||||
secret: Buffer;
|
||||
}
|
||||
|
||||
export interface Contact {
|
||||
publicKey: Buffer;
|
||||
name?: string;
|
||||
lastSeen?: number;
|
||||
}
|
||||
|
||||
// Constants
|
||||
export class Constants {
|
||||
static readonly SupportedCompanionProtocolVersion: number;
|
||||
|
||||
static readonly ResponseCodes: {
|
||||
ContactMsgRecv: number;
|
||||
ChannelMsgRecv: number;
|
||||
[key: string]: number;
|
||||
};
|
||||
|
||||
static readonly PushCodes: {
|
||||
MsgWaiting: number;
|
||||
NewAdvert: number;
|
||||
[key: string]: number;
|
||||
};
|
||||
|
||||
static readonly CommandCodes: {
|
||||
AppStart: number;
|
||||
SendTxtMsg: number;
|
||||
SendChannelTxtMsg: number;
|
||||
GetContacts: number;
|
||||
GetDeviceTime: number;
|
||||
SetDeviceTime: number;
|
||||
SendSelfAdvert: number;
|
||||
SetAdvertName: number;
|
||||
[key: string]: number;
|
||||
};
|
||||
}
|
||||
|
||||
export class Advert {
|
||||
constructor(data: Buffer);
|
||||
publicKey: Buffer;
|
||||
advName?: string;
|
||||
}
|
||||
|
||||
export class Packet {
|
||||
constructor(data: Buffer);
|
||||
}
|
||||
|
||||
export class BufferUtils {
|
||||
static xor(a: Buffer, b: Buffer): Buffer;
|
||||
static concat(...buffers: Buffer[]): Buffer;
|
||||
}
|
||||
|
||||
export class CayenneLpp {
|
||||
constructor();
|
||||
}
|
||||
}
|
||||
|
||||
// Type declarations for submodules
|
||||
declare module '@liamcottle/meshcore.js/src/constants.js' {
|
||||
const Constants: {
|
||||
SupportedCompanionProtocolVersion: number;
|
||||
ResponseCodes: {
|
||||
ContactMsgRecv: number;
|
||||
ChannelMsgRecv: number;
|
||||
[key: string]: number;
|
||||
};
|
||||
PushCodes: {
|
||||
MsgWaiting: number;
|
||||
NewAdvert: number;
|
||||
[key: string]: number;
|
||||
};
|
||||
CommandCodes: {
|
||||
AppStart: number;
|
||||
SendTxtMsg: number;
|
||||
SendChannelTxtMsg: number;
|
||||
GetContacts: number;
|
||||
GetDeviceTime: number;
|
||||
SetDeviceTime: number;
|
||||
SendSelfAdvert: number;
|
||||
SetAdvertName: number;
|
||||
[key: string]: number;
|
||||
};
|
||||
};
|
||||
export default Constants;
|
||||
}
|
||||
|
||||
declare module '@liamcottle/meshcore.js/src/buffer_reader.js' {
|
||||
export default class BufferReader {
|
||||
constructor(buffer: Buffer);
|
||||
readByte(): number;
|
||||
readInt8(): number;
|
||||
readUInt16LE(): number;
|
||||
readUInt32LE(): number;
|
||||
readBytes(length: number): Buffer;
|
||||
readString(): string;
|
||||
}
|
||||
}
|
||||
|
||||
declare module '@liamcottle/meshcore.js/src/buffer_writer.js' {
|
||||
export default class BufferWriter {
|
||||
constructor();
|
||||
writeByte(value: number): void;
|
||||
writeInt8(value: number): void;
|
||||
writeUInt16LE(value: number): void;
|
||||
writeUInt32LE(value: number): void;
|
||||
writeBytes(buffer: Buffer | Uint8Array): void;
|
||||
writeString(str: string): void;
|
||||
toBytes(): Buffer;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue