/**
 * StrandCoordinateMetadata — runtime-backed strand-specific metadata
 * attached to a ConflictResolvedCoordinate.
 *
 * Carries the strand identity, its base observation Lamport ceiling,
 * overlay coordinates, and braid summary for analysis results that
 * resolved through a strand coordinate rather than the frontier.
 *
 * Instances are frozen on construction. All invariants are validated
 * eagerly. The nested `braid` block is deep-frozen.
 *
 * @module domain/types/conflict/StrandCoordinateMetadata
 */
type BraidSummary = {
    readonly readOverlayCount: number;
    readonly braidedStrandIds: readonly string[];
};
type StrandCoordinateMetadataFields = {
    strandId: string;
    baseLamportCeiling: number | null;
    overlayHeadPatchSha: string | null;
    overlayPatchCount: number;
    overlayWritable: boolean;
    braid?: {
        readOverlayCount: number;
        braidedStrandIds: readonly string[];
    };
};
/**
 * A runtime-backed summary of a strand coordinate, attached to a
 * ConflictResolvedCoordinate when the analysis ran against a strand
 * instead of the frontier.
 */
export default class StrandCoordinateMetadata {
    readonly strandId: string;
    readonly baseLamportCeiling: number | null;
    readonly overlayHeadPatchSha: string | null;
    readonly overlayPatchCount: number;
    readonly overlayWritable: boolean;
    readonly braid: BraidSummary | undefined;
    /**
     * Creates a frozen StrandCoordinateMetadata with validated fields.
     */
    constructor({ strandId, baseLamportCeiling, overlayHeadPatchSha, overlayPatchCount, overlayWritable, braid }: StrandCoordinateMetadataFields);
}
export {};
