Keeta LogoKeeta Logo@keetanetwork/keetanet-client
    Preparing search index...
    SchemaMap: T extends () => infer U
        ? U extends Schema ? SchemaMap<U> : never
        : T extends keyof BasicSchemaMap
            ? BasicSchemaMap[T]
            : T extends { choice: Schema[] }
                ? SchemaMap<T["choice"][number]>
                : T extends { choice: readonly Schema[] }
                    ? SchemaMap<T["choice"][number]>
                    : T extends {
                        choice: infer C extends
                            { [name: string]: Schema }
                            | { readonly [name: string]: Schema };
                    }
                        ? { [K in keyof C]: C[K] extends Schema ? SchemaMap<C[K]> : never }[keyof C]
                        : T extends { sequenceOf: Schema }
                            ? SchemaMap<T["sequenceOf"]>[]
                            : T extends { optional: Schema }
                                ? SchemaMap<T["optional"]> | undefined
                                : T extends bigint
                                    ? T
                                    : T extends {
                                        contains: Schema;
                                        kind: infer U extends ASN1ContextTag["kind"];
                                        type: "context";
                                        value: number;
                                    }
                                        ? Omit<ASN1ContextTag, "contains" | "value" | "kind"> & {
                                            contains: SchemaMap<T["contains"]>;
                                            kind: U;
                                            value: T["value"];
                                        }
                                        : T extends { oid: string; type: "oid" }
                                            ? Omit<ASN1OID, "oid"> & { oid: T["oid"] }
                                            : T extends { kind: "printable"
                                            | "ia5"
                                            | "utf8"; type: "string" }
                                                ? Omit<ASN1String, "kind"> & { kind: T["kind"] }
                                                : T extends { kind: "general"
                                                | "utc"; type: "date" }
                                                    ? Omit<ASN1Date, "kind"> & { kind: T["kind"] }
                                                    : T extends {
                                                        contains: infer C extends
                                                            | { [name: string]: Schema }
                                                            | { readonly [name: string]: Schema };
                                                        fieldNames: infer F extends readonly string[] | string[];
                                                        type: "struct";
                                                    }
                                                        ? Omit<ASN1Struct, "fieldNames" | "contains"> & {
                                                            contains: {
                                                                [K in (
                                                                    F extends readonly (infer U)[]
                                                                        ? U
                                                                        : F extends (infer U)[] ? U : never
                                                                ) & string]: K extends keyof C
                                                                    ? C[K] extends Schema ? SchemaMap<C[K]> : never
                                                                    : never
                                                            };
                                                            fieldNames: F extends readonly string[] ? F : string[];
                                                        }
                                                        : T extends readonly [Schema, ...Schema[]]
                                                            ? {
                                                                [K in keyof T]: T[K] extends Schema
                                                                    ? SchemaMap<T[K]>
                                                                    : never
                                                            }
                                                            : never

    Type Parameters