/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Bytes } from "#general";
import { BdxMessageType, Schema, SchemaType } from "#types";
export interface BdxMessage<T extends BdxMessageType> {
    kind: T;
    message: SchemaType<BdxMessage.Kinds[T]>;
}
/** Convenient wrapper around BDX message encoding/decoding and type guards. */
export declare namespace BdxMessage {
    function encode<T extends BdxMessageType>({ kind, message }: BdxMessage<T>): AllowSharedBufferSource;
    function decode<T extends BdxMessageType>(kind: T, payload: Bytes): BdxMessage<T>;
    function is<T extends BdxMessageType>(message: BdxMessage<any>, kind: T): message is BdxMessage<T>;
    function assert<T extends BdxMessageType>(message: BdxMessage<any>, kind: T): asserts message is BdxMessage<T>;
    const Kinds: {
        [key: number]: Schema<any>;
    };
    type Kinds = typeof Kinds;
}
//# sourceMappingURL=BdxMessage.d.ts.map