/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { SessionId } from "@fluidframework/id-compressor";
import { type TSchema } from "@sinclair/typebox";
import { type EncodedRevisionTag } from "../core/index.js";
import type { JsonCompatibleReadOnly } from "../util/index.js";
import type { EncodedBranchId } from "./branch.js";
import { MessageFormatVersion } from "./messageFormat.js";
/**
 * The format of messages that SharedTree sends and receives.
 */
export interface Message {
    /**
     * The revision tag for the change in this message
     */
    readonly revision?: EncodedRevisionTag;
    /**
     * The stable ID that identifies the originator of the message.
     */
    readonly originatorId: SessionId;
    /**
     * The changeset to be applied.
     */
    readonly changeset?: JsonCompatibleReadOnly;
    readonly branchId?: EncodedBranchId;
    /**
     * The version of the message format.
     */
    readonly version: typeof MessageFormatVersion.vSharedBranches;
}
export declare const Message: <ChangeSchema extends TSchema>(tChange: ChangeSchema) => import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>>;
    originatorId: import("@sinclair/typebox").TUnsafe<SessionId>;
    changeset: ChangeSchema extends import("@sinclair/typebox").TOptional<infer S extends TSchema> ? import("@sinclair/typebox").TOptional<S> : import("@sinclair/typebox").Ensure<import("@sinclair/typebox").TOptional<ChangeSchema>>;
    branchId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    version: import("@sinclair/typebox").TLiteral<import("../util/brand.js").Brand<"shared-branches|v0.1", "MessageFormatVersion">>;
}>;
//# sourceMappingURL=messageFormatVSharedBranches.d.ts.map