/// import { AnyObject } from './exported-global-types'; /** * Battle Stream * Pokemon Showdown - http://pokemonshowdown.com/ * * Supports interacting with a PS battle in Stream format. * * This format is VERY NOT FINALIZED, please do not use it directly yet. * * @license MIT */ import { Streams } from '../lib'; import { Battle } from './battle'; export declare class BattleStream extends Streams.ObjectReadWriteStream { debug: boolean; noCatch: boolean; replay: boolean | 'spectator'; keepAlive: boolean; battle: Battle | null; constructor(options?: { debug?: boolean; noCatch?: boolean; keepAlive?: boolean; replay?: boolean | 'spectator'; }); _write(chunk: string): void; _writeLines(chunk: string): void; pushMessage(type: string, data: string): void; _writeLine(type: string, message: string): void; _writeEnd(): void; _destroy(): void; } /** * Splits a BattleStream into omniscient, spectator, p1, p2, p3 and p4 * streams, for ease of consumption. */ export declare function getPlayerStreams(stream: BattleStream): { omniscient: Streams.ObjectReadWriteStream; spectator: Streams.ObjectReadStream; p1: Streams.ObjectReadWriteStream; p2: Streams.ObjectReadWriteStream; p3: Streams.ObjectReadWriteStream; p4: Streams.ObjectReadWriteStream; }; export declare abstract class BattlePlayer { readonly stream: Streams.ObjectReadWriteStream; readonly log: string[]; readonly debug: boolean; constructor(playerStream: Streams.ObjectReadWriteStream, debug?: boolean); start(): Promise; receive(chunk: string): void; receiveLine(line: string): void; abstract receiveRequest(request: AnyObject): void; receiveError(error: Error): void; choose(choice: string): void; } export declare class BattleTextStream extends Streams.ReadWriteStream { readonly battleStream: BattleStream; currentMessage: string; constructor(options: { debug?: boolean; }); start(): Promise; _write(message: string | Buffer): void; _writeEnd(): Promise; }