wpilib-riolog
Version:
69 lines (68 loc) • 2.83 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { IErrorMessage, IPrintMessage } from './message';
export declare enum SendTypes {
Batch = 0,
ConnectionChanged = 1,
PauseUpdate = 2,
New = 3
}
export interface IIPCSendMessage {
type: SendTypes;
message: IPrintMessage | IErrorMessage | Array<IPrintMessage | IErrorMessage> | boolean | number;
}
export declare enum ReceiveTypes {
Discard = 0,
Pause = 1,
Save = 2,
Reconnect = 3,
ChangeNumber = 4
}
export interface IIPCReceiveMessage {
type: ReceiveTypes;
message: boolean | string[] | number;
}
export interface IWindowProvider {
createWindowView(): IWindowView;
}
export interface IDisposable {
dispose(): any;
}
export interface IWindowView extends EventEmitter, IDisposable {
postMessage(message: IIPCSendMessage): Promise<boolean>;
handleSave(saveData: Array<IPrintMessage | IErrorMessage>): Promise<boolean>;
addListener(event: string, listener: Function): this;
addListener(event: 'didReceiveMessage', listener: (message: IIPCReceiveMessage) => void): this;
addListener(event: 'didDispose', listener: () => void): this;
addListener(event: 'windowActive', listener: () => void): this;
on(event: string, listener: Function): this;
on(event: 'didReceiveMessage', listener: (message: IIPCReceiveMessage) => void): this;
on(event: 'didDispose', listener: () => void): this;
on(event: 'windowActive', listener: () => void): this;
emit(event: string | symbol, ...args: any[]): boolean;
emit(event: 'didReceiveMessage', message: IIPCReceiveMessage): boolean;
emit(event: 'didDispose'): boolean;
emit(event: 'windowActive'): boolean;
}
export interface IRioConsole extends EventEmitter, IDisposable {
connected: boolean;
discard: boolean;
stop(): void;
startListening(): void;
setAutoReconnect(autoReconnect: boolean): void;
getAutoReconnect(): boolean;
setTeamNumber(teamNumber: number): void;
addListener(event: string, listener: Function): this;
addListener(event: 'message', listener: (message: IIPCSendMessage) => void): this;
addListener(event: 'connectionChanged', listener: (connected: boolean) => void): this;
on(event: string, listener: Function): this;
on(event: 'message', listener: (message: IIPCSendMessage) => void): this;
on(event: 'connectionChanged', listener: (connected: boolean) => void): this;
emit(event: string | symbol, ...args: any[]): boolean;
emit(event: 'message', message: IPrintMessage | IErrorMessage): boolean;
emit(event: 'connectionChanged', connected: boolean): boolean;
disconnect(): void;
}
export interface IRioConsoleProvider {
getRioConsole(): IRioConsole;
}