ts-mls
Version:
[](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [](https://badge.fury.io/js/ts-mls) [ • 1.48 kB
TypeScript
import { ClientState } from "./clientState.js";
import { CiphersuiteImpl } from "./crypto/ciphersuite.js";
import { IncomingMessageAction, IncomingMessageCallback } from "./incomingMessageAction.js";
import { MlsPrivateMessage, MlsPublicMessage } from "./message.js";
import { PrivateMessage } from "./privateMessage.js";
import { PskIndex } from "./pskIndex.js";
import { PublicMessage } from "./publicMessage.js";
export type ProcessMessageResult = {
kind: "newState";
newState: ClientState;
actionTaken: IncomingMessageAction;
} | {
kind: "applicationMessage";
message: Uint8Array;
newState: ClientState;
};
/**
* Process private message and apply proposal or commit and return the updated ClientState or return an application message
*/
export declare function processPrivateMessage(state: ClientState, pm: PrivateMessage, pskSearch: PskIndex, cs: CiphersuiteImpl, callback?: IncomingMessageCallback): Promise<ProcessMessageResult>;
export interface NewStateWithActionTaken {
newState: ClientState;
actionTaken: IncomingMessageAction;
}
export declare function processPublicMessage(state: ClientState, pm: PublicMessage, pskSearch: PskIndex, cs: CiphersuiteImpl, callback?: IncomingMessageCallback): Promise<NewStateWithActionTaken>;
export declare function processMessage(message: MlsPrivateMessage | MlsPublicMessage, state: ClientState, pskIndex: PskIndex, action: IncomingMessageCallback, cs: CiphersuiteImpl): Promise<ProcessMessageResult>;