A fully typed ClusterType for an Options type.

interface Of<T> {
    attributes: T["attributes"] extends A
        ? Merge<A, GlobalAttributes<T["features"] extends {}
            ? any[any]
            : {}>>
        : {};
    base: T["base"] extends {}
        ? any[any]
        : undefined;
    commands: T["commands"] extends {}
        ? any[any]
        : {};
    events: T["events"] extends {}
        ? any[any]
        : {};
    extensions: T["extensions"] extends {}
        ? any[any]
        : undefined;
    features: T["features"] extends {}
        ? any[any]
        : {};
    id: Branded<T["id"], "ClusterId">;
    name: T["name"];
    revision: T["revision"];
    supportedFeatures: T["supportedFeatures"] extends {}
        ? any[any]
        : {};
    unknown: T["unknown"] extends boolean
        ? any[any]
        : false;
}

Type Parameters

Properties

attributes: T["attributes"] extends A
    ? Merge<A, GlobalAttributes<T["features"] extends {}
        ? any[any]
        : {}>>
    : {}
base: T["base"] extends {}
    ? any[any]
    : undefined
commands: T["commands"] extends {}
    ? any[any]
    : {}
events: T["events"] extends {}
    ? any[any]
    : {}
extensions: T["extensions"] extends {}
    ? any[any]
    : undefined
features: T["features"] extends {}
    ? any[any]
    : {}
id: Branded<T["id"], "ClusterId">
name: T["name"]
revision: T["revision"]
supportedFeatures: T["supportedFeatures"] extends {}
    ? any[any]
    : {}
unknown: T["unknown"] extends boolean
    ? any[any]
    : false