import { Writer } from 'protobufjs/minimal'; import { PacketHeader } from './models/PacketHeader'; export declare type Encodable = { encode(message: T, writer?: Writer): Writer; }; export declare type Decodable = { decode(input: Uint8Array): T; }; export declare function encrypt(body: Uint8Array, key: CryptoKey): Promise; export declare function decrypt(body: Uint8Array, key: CryptoKey): Promise; export declare function encode(header: PacketHeader, body: Uint8Array, key: CryptoKey): Promise; export declare function decode(type: Decodable, buf: Uint8Array, serviceKey: CryptoKey, sessionKey: CryptoKey): Promise<[PacketHeader, T]>;