Endo
    Preparing search index...

    Type Alias Guarded<M, G>

    Guarded: StripIndexSignature<M> & {
        __getInterfaceGuard__?: () => InterfaceGuard | undefined;
        __interfaceGuard__?(g?: G): void;
    } & RemotableBrand<{}, M> & RemotableObject

    The second type parameter G embeds the specific InterfaceGuard type for use by GuardedMethods when extracting guard-inferred method signatures.

    G is carried in two slots:

    1. __getInterfaceGuard__?: () => InterfaceGuard | undefined — the runtime accessor, typed with the wide InterfaceGuard return so it stays compatible across different specific Gs. A function return is invariant under assignment, so embedding the specific G here would make Guarded<M, G1> and Guarded<M, G2> mutually incompatible even when M is structurally identical.
    2. __interfaceGuard__?(g?: G): void — a phantom method (not a field) carrying the specific G at the type level. Method shorthand syntax gives g's type bivariant treatment under assignment, so Guarded<M, G1> and Guarded<M, G2> are structurally compatible even when their Gs differ. Optional, so no runtime cost. GuardedMethods<E> reads from this phantom.

    When no guard is provided (unguarded overloads), G defaults to a generic InterfaceGuard keyed by M.

    Type Parameters