@slippi/slippi-js
Version:
Official Project Slippi Javascript SDK
49 lines • 1.71 kB
TypeScript
import type { EventCallbackFunc, EventPayloadTypes, GameEndType, MetadataType, PostFrameUpdateType } from "../types";
import { Command } from "../types";
export declare enum SlpInputSource {
BUFFER = "buffer",
FILE = "file"
}
type SlpFileReadInput = {
source: SlpInputSource.FILE;
filePath: string;
};
type SlpBufferReadInput = {
source: SlpInputSource.BUFFER;
buffer: Buffer;
};
export type SlpReadInput = SlpFileReadInput | SlpBufferReadInput;
export type SlpRefType = SlpFileSourceRef | SlpBufferSourceRef;
export type SlpFileType = {
ref: SlpRefType;
rawDataPosition: number;
rawDataLength: number;
metadataPosition: number;
metadataLength: number;
messageSizes: {
[command: number]: number;
};
};
export type SlpFileSourceRef = {
source: SlpInputSource.FILE;
fileDescriptor: number;
};
export type SlpBufferSourceRef = {
source: SlpInputSource.BUFFER;
buffer: Buffer;
};
/**
* Opens a file at path
*/
export declare function openSlpFile(input: SlpReadInput): SlpFileType;
export declare function closeSlpFile(file: SlpFileType): void;
/**
* Iterates through slp events and parses payloads
*/
export declare function iterateEvents(slpFile: SlpFileType, callback: EventCallbackFunc, startPos?: number | null): number;
export declare function parseMessage(command: Command, payload: Uint8Array): EventPayloadTypes | null;
export declare function getMetadata(slpFile: SlpFileType): MetadataType | null;
export declare function getGameEnd(slpFile: SlpFileType): GameEndType | null;
export declare function extractFinalPostFrameUpdates(slpFile: SlpFileType): PostFrameUpdateType[];
export {};
//# sourceMappingURL=slpReader.d.ts.map