{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.6.2",
    "schemaVersion": 1003,
    "oldestForwardsCompatibleVersion": 1001
  },
  "kind": "Package",
  "canonicalReference": "@loopback/repository!",
  "docComment": "",
  "name": "@loopback/repository",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@loopback/repository!",
      "name": "",
      "members": [
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!AndClause:interface",
          "docComment": "/**\n * And clause\n *\n * @example\n * ```ts\n * {\n *   and: [...],\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface AndClause<MT extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "AndClause",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!AndClause#and:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "and: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "and",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!ANY:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "ANY: "
            },
            {
              "kind": "Reference",
              "text": "AnyType",
              "canonicalReference": "@loopback/repository!AnyType:class"
            }
          ],
          "releaseTag": "Public",
          "name": "ANY",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!AnyObject:interface",
          "docComment": "/**\n * Objects with open properties\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface AnyObject "
            }
          ],
          "releaseTag": "Public",
          "name": "AnyObject",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/repository!AnyObject:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "[property: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "property",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!AnyType:class",
          "docComment": "/**\n * Any type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class AnyType implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<any> "
            }
          ],
          "releaseTag": "Public",
          "name": "AnyType",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!AnyType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!AnyType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!AnyType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!AnyType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!AnyType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"any\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!AnyType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!ApplicationWithRepositories:interface",
          "docComment": "/**\n * Interface for an Application mixed in with RepositoryMixin\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ApplicationWithRepositories extends "
            },
            {
              "kind": "Reference",
              "text": "Application",
              "canonicalReference": "@loopback/core!Application:class"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ApplicationWithRepositories",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!ApplicationWithRepositories#component:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "component(component: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<unknown>"
                },
                {
                  "kind": "Content",
                  "text": ", name?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding",
                  "canonicalReference": "@loopback/context!Binding:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "component"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!ApplicationWithRepositories#dataSource:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "dataSource<D extends "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": ">(dataSource: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<D> | D"
                },
                {
                  "kind": "Content",
                  "text": ", name?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding",
                  "canonicalReference": "@loopback/context!Binding:class"
                },
                {
                  "kind": "Content",
                  "text": "<D>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataSource",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "D",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "dataSource"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!ApplicationWithRepositories#getRepository:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getRepository<R extends "
                },
                {
                  "kind": "Reference",
                  "text": "Repository",
                  "canonicalReference": "@loopback/repository!Repository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<any>"
                },
                {
                  "kind": "Content",
                  "text": ">(repo: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<R>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<R>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "repo",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "R",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getRepository"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!ApplicationWithRepositories#migrateSchema:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "migrateSchema(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "SchemaMigrationOptions",
                  "canonicalReference": "@loopback/repository!SchemaMigrationOptions:interface"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "migrateSchema"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!ApplicationWithRepositories#mountComponentRepositories:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "mountComponentRepositories(component: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<unknown>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "mountComponentRepositories"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!ApplicationWithRepositories#repository:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "repository<R extends "
                },
                {
                  "kind": "Reference",
                  "text": "Repository",
                  "canonicalReference": "@loopback/repository!Repository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<any>"
                },
                {
                  "kind": "Content",
                  "text": ">(repo: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<R>"
                },
                {
                  "kind": "Content",
                  "text": ", name?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding",
                  "canonicalReference": "@loopback/context!Binding:class"
                },
                {
                  "kind": "Content",
                  "text": "<R>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 11
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "repo",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "R",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "repository"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!ArrayType:class",
          "docComment": "/**\n * Array type, such as string[]\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class ArrayType<T> implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<T[]> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ArrayType",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!ArrayType:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `ArrayType` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(itemType: "
                },
                {
                  "kind": "Reference",
                  "text": "Type",
                  "canonicalReference": "@loopback/repository!Type:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "itemType",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ArrayType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ArrayType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "T[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ArrayType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ArrayType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ArrayType#itemType:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "itemType: "
                },
                {
                  "kind": "Reference",
                  "text": "Type",
                  "canonicalReference": "@loopback/repository!Type:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "itemType",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ArrayType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"array\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ArrayType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "T[] | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any[] | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!belongsTo:function(1)",
          "docComment": "/**\n * Decorator for belongsTo\n *\n * @param targetResolver - A resolver function that returns the target model for a belongsTo relation\n *\n * @param definition - Optional metadata for setting up a belongsTo relation\n *\n * @param propertyDefinition - Optional metadata for setting up the property\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function belongsTo<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">(targetResolver: "
            },
            {
              "kind": "Reference",
              "text": "EntityResolver",
              "canonicalReference": "@loopback/repository!EntityResolver:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ", definition?: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "BelongsToDefinition",
              "canonicalReference": "@loopback/repository!BelongsToDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ", propertyDefinition?: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "PropertyDefinition",
              "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(decoratedTarget: "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", decoratedKey: string) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 16,
            "endIndex": 19
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "targetResolver",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              }
            },
            {
              "parameterName": "propertyDefinition",
              "parameterTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 15
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "belongsTo"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!BelongsToAccessor:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface BelongsToAccessor<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", SourceId> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "SourceId",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "BelongsToAccessor",
          "members": [
            {
              "kind": "CallSignature",
              "canonicalReference": "@loopback/repository!BelongsToAccessor:call(1)",
              "docComment": "/**\n * Invoke the function to obtain HasManyRepository.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "(sourceId: "
                },
                {
                  "kind": "Content",
                  "text": "SourceId"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "sourceId",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!BelongsToAccessor#inclusionResolver:member",
              "docComment": "/**\n * Use `resolver` property to obtain an InclusionResolver for this relation.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "inclusionResolver: "
                },
                {
                  "kind": "Reference",
                  "text": "InclusionResolver",
                  "canonicalReference": "@loopback/repository!InclusionResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "inclusionResolver",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!BelongsToDefinition:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface BelongsToDefinition extends "
            },
            {
              "kind": "Reference",
              "text": "RelationDefinitionBase",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "BelongsToDefinition",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!BelongsToDefinition#keyFrom:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "keyFrom: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "keyFrom",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!BelongsToDefinition#keyTo:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "keyTo?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "keyTo",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!BelongsToDefinition#targetsMany:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "targetsMany: "
                },
                {
                  "kind": "Content",
                  "text": "false"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "targetsMany",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!BelongsToDefinition#type:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationType.belongsTo",
                  "canonicalReference": "@loopback/repository!RelationType.belongsTo:member"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!BelongsToRepository:interface",
          "docComment": "/**\n * CRUD operations for a target repository of a BelongsTo relation\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface BelongsToRepository<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "BelongsToRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!BelongsToRepository#get:member(1)",
              "docComment": "/**\n * Gets the target model instance\n *\n * @param  - options\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "get"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!bindModel:function(1)",
          "docComment": "/**\n * This is a bridge to the legacy DAO class. The function mixes DAO methods into a model class and attach it to a given data source\n *\n * @param modelClass - Model class\n *\n * @param ds - Data source\n *\n * @returns {} The new model class with DAO (CRUD) operations\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function bindModel<T extends "
            },
            {
              "kind": "Reference",
              "text": "juggler.ModelBaseClass",
              "canonicalReference": "loopback-datasource-juggler!ModelBaseClass:type"
            },
            {
              "kind": "Content",
              "text": ">(modelClass: "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ", ds: "
            },
            {
              "kind": "Reference",
              "text": "juggler.DataSource",
              "canonicalReference": "loopback-datasource-juggler!DataSource:class"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 8
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelClass",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "ds",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "bindModel"
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!BOOLEAN:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "BOOLEAN: "
            },
            {
              "kind": "Reference",
              "text": "BooleanType",
              "canonicalReference": "@loopback/repository!BooleanType:class"
            }
          ],
          "releaseTag": "Public",
          "name": "BOOLEAN",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!BooleanType:class",
          "docComment": "/**\n * Boolean type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class BooleanType implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<boolean> "
            }
          ],
          "releaseTag": "Public",
          "name": "BooleanType",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BooleanType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BooleanType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BooleanType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BooleanType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!BooleanType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"boolean\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BooleanType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "boolean | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!BUFFER:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "BUFFER: "
            },
            {
              "kind": "Reference",
              "text": "BufferType",
              "canonicalReference": "@loopback/repository!BufferType:class"
            }
          ],
          "releaseTag": "Public",
          "name": "BUFFER",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!BufferType:class",
          "docComment": "/**\n * Buffer (binary) type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class BufferType implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Buffer",
              "canonicalReference": "!Buffer:interface"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "name": "BufferType",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BufferType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BufferType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Reference",
                  "text": "Buffer",
                  "canonicalReference": "!Buffer:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BufferType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BufferType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!BufferType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"buffer\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!BufferType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Reference",
                  "text": "Buffer",
                  "canonicalReference": "!Buffer:interface"
                },
                {
                  "kind": "Content",
                  "text": " | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!buildLookupMap:function(1)",
          "docComment": "/**\n * Returns a map which maps key values(ids) to instances. The instances can be grouped by different strategies.\n *\n * @param list - an array of instances\n *\n * @param keyName - key name of the source\n *\n * @param reducer - a strategy to reduce inputs to single item or array\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function buildLookupMap<Key, InType, OutType = "
            },
            {
              "kind": "Content",
              "text": "InType"
            },
            {
              "kind": "Content",
              "text": ">(list: "
            },
            {
              "kind": "Content",
              "text": "InType[]"
            },
            {
              "kind": "Content",
              "text": ", keyName: "
            },
            {
              "kind": "Reference",
              "text": "StringKeyOf",
              "canonicalReference": "@loopback/repository!StringKeyOf:type"
            },
            {
              "kind": "Content",
              "text": "<InType>"
            },
            {
              "kind": "Content",
              "text": ", reducer: "
            },
            {
              "kind": "Content",
              "text": "(accumulator: OutType | undefined, current: InType) => OutType"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Map",
              "canonicalReference": "!Map:interface"
            },
            {
              "kind": "Content",
              "text": "<Key, OutType>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 10,
            "endIndex": 12
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "list",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "keyName",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              }
            },
            {
              "parameterName": "reducer",
              "parameterTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Key",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "InType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "OutType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "buildLookupMap"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!buildModelDefinition:function(1)",
          "docComment": "/**\n * Build model definition from decorations\n *\n * @param target - Target model class\n *\n * @param def - Model definition spec\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function buildModelDefinition(target: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": " & {\n    definition?: "
            },
            {
              "kind": "Reference",
              "text": "ModelDefinition",
              "canonicalReference": "@loopback/repository!ModelDefinition:class"
            },
            {
              "kind": "Content",
              "text": " | undefined;\n}"
            },
            {
              "kind": "Content",
              "text": ", def?: "
            },
            {
              "kind": "Reference",
              "text": "ModelDefinitionSyntax",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ModelDefinition",
              "canonicalReference": "@loopback/repository!ModelDefinition:class"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 8,
            "endIndex": 9
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "target",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            },
            {
              "parameterName": "def",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              }
            }
          ],
          "name": "buildModelDefinition"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Callback:type",
          "docComment": "/**\n * Type alias for Node.js callback functions\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Callback<T> = "
            },
            {
              "kind": "Content",
              "text": "(err: "
            },
            {
              "kind": "Reference",
              "text": "Error",
              "canonicalReference": "!Error:interface"
            },
            {
              "kind": "Content",
              "text": " | string | null | undefined, result?: T) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Callback",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Class:interface",
          "docComment": "/**\n * Interface for classes with `new` operator and static properties/methods\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Class<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "Class",
          "members": [
            {
              "kind": "ConstructSignature",
              "canonicalReference": "@loopback/repository!Class:new(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "new (...args: "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/repository!Class:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "[property: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "property",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Command:type",
          "docComment": "/**\n * Type for a command\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Command = "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Command",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 3
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Condition:type",
          "docComment": "/**\n * Condition clause\n *\n * @example\n * ```ts\n * {\n *   name: {inq: ['John', 'Mary']},\n *   status: 'ACTIVE',\n *   age: {gte: 40}\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Condition<MT extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Content",
              "text": "{\n    [P in "
            },
            {
              "kind": "Reference",
              "text": "KeyOf",
              "canonicalReference": "@loopback/repository!KeyOf:type"
            },
            {
              "kind": "Content",
              "text": "<MT>]?: "
            },
            {
              "kind": "Reference",
              "text": "PredicateComparison",
              "canonicalReference": "@loopback/repository!PredicateComparison:type"
            },
            {
              "kind": "Content",
              "text": "<MT[P]> | (MT[P] & "
            },
            {
              "kind": "Reference",
              "text": "ShortHandEqualType",
              "canonicalReference": "@loopback/repository!ShortHandEqualType:type"
            },
            {
              "kind": "Content",
              "text": ");\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Condition",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 10
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Connector:interface",
          "docComment": "/**\n * Common properties/operations for connectors\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Connector "
            }
          ],
          "releaseTag": "Public",
          "name": "Connector",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Connector#configModel:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "configModel?: "
                },
                {
                  "kind": "Reference",
                  "text": "Model",
                  "canonicalReference": "@loopback/repository!Model:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "configModel",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Connector#connect:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "connect(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "connect"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Connector#disconnect:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "disconnect(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "disconnect"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Connector#execute:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "execute?(command: "
                },
                {
                  "kind": "Reference",
                  "text": "Command",
                  "canonicalReference": "@loopback/repository!Command:type"
                },
                {
                  "kind": "Content",
                  "text": ", parameters: "
                },
                {
                  "kind": "Reference",
                  "text": "NamedParameters",
                  "canonicalReference": "@loopback/repository!NamedParameters:type"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "PositionalParameters",
                  "canonicalReference": "@loopback/repository!PositionalParameters:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "AnyObject",
                  "canonicalReference": "@loopback/repository!AnyObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "command",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "parameters",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "execute"
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Connector#interfaces:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "interfaces?: "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "interfaces",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Connector#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Connector#ping:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ping(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "ping"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!constrainDataObject:function(1)",
          "docComment": "/**\n * A utility function which takes a model instance data and enforces constraint(s) on it\n *\n * @param originalData - the model data to apply the constrain(s) to\n *\n * @param constraint - the constraint which is to be applied on the data object\n *\n * @returns the modified data with the constraint, otherwise the original instance data\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function constrainDataObject<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">(originalData: "
            },
            {
              "kind": "Reference",
              "text": "DataObject",
              "canonicalReference": "@loopback/repository!DataObject:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ", constraint: "
            },
            {
              "kind": "Reference",
              "text": "DataObject",
              "canonicalReference": "@loopback/repository!DataObject:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "DataObject",
              "canonicalReference": "@loopback/repository!DataObject:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 11
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "originalData",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "constraint",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "constrainDataObject"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!constrainDataObjects:function(1)",
          "docComment": "/**\n * A utility function which takes an array of model instance data and enforces constraint(s) on it\n *\n * @param originalData - the array of model data to apply the constrain(s) to\n *\n * @param constraint - the constraint which is to be applied on the data objects\n *\n * @returns an array of the modified data with the constraint, otherwise the original instance data array\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function constrainDataObjects<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">(originalData: "
            },
            {
              "kind": "Reference",
              "text": "DataObject",
              "canonicalReference": "@loopback/repository!DataObject:type"
            },
            {
              "kind": "Content",
              "text": "<T>[]"
            },
            {
              "kind": "Content",
              "text": ", constraint: "
            },
            {
              "kind": "Reference",
              "text": "DataObject",
              "canonicalReference": "@loopback/repository!DataObject:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "DataObject",
              "canonicalReference": "@loopback/repository!DataObject:type"
            },
            {
              "kind": "Content",
              "text": "<T>[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 11
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "originalData",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "constraint",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "constrainDataObjects"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!constrainFilter:function(1)",
          "docComment": "/**\n * A utility function which takes a filter and enforces constraint(s) on it\n *\n * @param originalFilter - the filter to apply the constrain(s) to\n *\n * @param constraint - the constraint which is to be applied on the filter\n *\n * @returns Filter the modified filter with the constraint, otherwise the original filter\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function constrainFilter<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(originalFilter: "
            },
            {
              "kind": "Reference",
              "text": "Filter",
              "canonicalReference": "@loopback/repository!Filter:interface"
            },
            {
              "kind": "Content",
              "text": "<T> | undefined"
            },
            {
              "kind": "Content",
              "text": ", constraint: "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Filter",
              "canonicalReference": "@loopback/repository!Filter:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 8,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "originalFilter",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "constraint",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "constrainFilter"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!constrainWhere:function(1)",
          "docComment": "/**\n * A utility function which takes a where filter and enforces constraint(s) on it\n *\n * @param originalWhere - the where filter to apply the constrain(s) to\n *\n * @param constraint - the constraint which is to be applied on the filter\n *\n * @returns Filter the modified filter with the constraint, otherwise the original filter\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function constrainWhere<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(originalWhere: "
            },
            {
              "kind": "Reference",
              "text": "Where",
              "canonicalReference": "@loopback/repository!Where:type"
            },
            {
              "kind": "Content",
              "text": "<T> | undefined"
            },
            {
              "kind": "Content",
              "text": ", constraint: "
            },
            {
              "kind": "Reference",
              "text": "Where",
              "canonicalReference": "@loopback/repository!Where:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Where",
              "canonicalReference": "@loopback/repository!Where:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 11
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "originalWhere",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "constraint",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "constrainWhere"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Constructor:type",
          "docComment": "/**\n * Constructor type - class or function\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Constructor<T> = "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<T> | "
            },
            {
              "kind": "Reference",
              "text": "ConstructorFunction",
              "canonicalReference": "@loopback/repository!ConstructorFunction:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Constructor",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!ConstructorFunction:interface",
          "docComment": "/**\n * Interface for constructor functions without `new` operator.\n *\n * @example\n * ```ts\n * function Foo(x) {\n *   if (!(this instanceof Foo)) { return new Foo(x); }\n *   this.x = x;\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ConstructorFunction<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ConstructorFunction",
          "members": [
            {
              "kind": "CallSignature",
              "canonicalReference": "@loopback/repository!ConstructorFunction:call(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "(...args: "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Count:interface",
          "docComment": "/**\n * Count of Model instances that were successful for methods like `updateAll`, `deleteAll`, etc.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Count "
            }
          ],
          "releaseTag": "Public",
          "name": "Count",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Count#count:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "count: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "count",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!CountSchema:var",
          "docComment": "/**\n * JSON Schema describing the Count interface. It's the response type for REST calls to APIs which return Count\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "CountSchema: "
            },
            {
              "kind": "Content",
              "text": "{\n    type: string;\n    properties: {\n        count: {\n            type: string;\n        };\n    };\n}"
            }
          ],
          "releaseTag": "Public",
          "name": "CountSchema",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!createBelongsToAccessor:function(1)",
          "docComment": "/**\n * Enforces a BelongsTo constraint on a repository\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createBelongsToAccessor<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetId, Source extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", SourceId>(belongsToMetadata: "
            },
            {
              "kind": "Reference",
              "text": "BelongsToDefinition",
              "canonicalReference": "@loopback/repository!BelongsToDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ", targetRepoGetter: "
            },
            {
              "kind": "Reference",
              "text": "Getter",
              "canonicalReference": "@loopback/context!Getter:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, TargetId>>"
            },
            {
              "kind": "Content",
              "text": ", sourceRepository: "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<Source, SourceId>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "BelongsToAccessor",
              "canonicalReference": "@loopback/repository!BelongsToAccessor:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, SourceId>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 15,
            "endIndex": 17
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "belongsToMetadata",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "targetRepoGetter",
              "parameterTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 11
              }
            },
            {
              "parameterName": "sourceRepository",
              "parameterTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetId",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Source",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "SourceId",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "createBelongsToAccessor"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!createBelongsToInclusionResolver:function(1)",
          "docComment": "/**\n * Creates InclusionResolver for BelongsTo relation. Notice that this function only generates the inclusionResolver. It doesn't register it for the source repository.\n *\n * Notice: scope field for inclusion is not supported yet\n *\n * @param meta - resolved BelongsToMetadata\n *\n * @param getTargetRepo - target repository i.e where related instances are\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createBelongsToInclusionResolver<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetID, TargetRelations extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(meta: "
            },
            {
              "kind": "Reference",
              "text": "BelongsToDefinition",
              "canonicalReference": "@loopback/repository!BelongsToDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ", getTargetRepo: "
            },
            {
              "kind": "Reference",
              "text": "Getter",
              "canonicalReference": "@loopback/context!Getter:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, TargetID, TargetRelations>>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "InclusionResolver",
              "canonicalReference": "@loopback/repository!InclusionResolver:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", Target>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 16
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "meta",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "getTargetRepo",
              "parameterTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 11
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetRelations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "createBelongsToInclusionResolver"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!createHasManyInclusionResolver:function(1)",
          "docComment": "/**\n * Creates InclusionResolver for HasMany relation. Notice that this function only generates the inclusionResolver. It doesn't register it for the source repository.\n *\n * Notice: scope field for inclusion is not supported yet.\n *\n * @param meta - resolved metadata of the hasMany relation\n *\n * @param getTargetRepo - target repository i.e where related instances are\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createHasManyInclusionResolver<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetID, TargetRelations extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(meta: "
            },
            {
              "kind": "Reference",
              "text": "HasManyDefinition",
              "canonicalReference": "@loopback/repository!HasManyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ", getTargetRepo: "
            },
            {
              "kind": "Reference",
              "text": "Getter",
              "canonicalReference": "@loopback/context!Getter:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, TargetID, TargetRelations>>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "InclusionResolver",
              "canonicalReference": "@loopback/repository!InclusionResolver:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", Target>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 16
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "meta",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "getTargetRepo",
              "parameterTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 11
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetRelations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "createHasManyInclusionResolver"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!createHasManyRepositoryFactory:function(1)",
          "docComment": "/**\n * Enforces a constraint on a repository based on a relationship contract between models. For example, if a Customer model is related to an Order model via a HasMany relation, then, the relational repository returned by the factory function would be constrained by a Customer model instance's id(s).\n *\n * @param relationMetadata - The relation metadata used to describe the relationship and determine how to apply the constraint.\n *\n * @param targetRepositoryGetter - The repository which represents the target model of a relation attached to a datasource.\n *\n * @returns The factory function which accepts a foreign key value to constrain the given target repository\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createHasManyRepositoryFactory<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetID, ForeignKeyType>(relationMetadata: "
            },
            {
              "kind": "Reference",
              "text": "HasManyDefinition",
              "canonicalReference": "@loopback/repository!HasManyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ", targetRepositoryGetter: "
            },
            {
              "kind": "Reference",
              "text": "Getter",
              "canonicalReference": "@loopback/context!Getter:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, TargetID>>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "HasManyRepositoryFactory",
              "canonicalReference": "@loopback/repository!HasManyRepositoryFactory:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, ForeignKeyType>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 10,
            "endIndex": 12
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "relationMetadata",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "targetRepositoryGetter",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ForeignKeyType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "createHasManyRepositoryFactory"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!createHasOneRepositoryFactory:function(1)",
          "docComment": "/**\n * Enforces a constraint on a repository based on a relationship contract between models. For example, if a Customer model is related to an Address model via a HasOne relation, then, the relational repository returned by the factory function would be constrained by a Customer model instance's id(s).\n *\n * @param relationMetadata - The relation metadata used to describe the relationship and determine how to apply the constraint.\n *\n * @param targetRepositoryGetter - The repository which represents the target model of a relation attached to a datasource.\n *\n * @returns The factory function which accepts a foreign key value to constrain the given target repository\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createHasOneRepositoryFactory<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetID, ForeignKeyType>(relationMetadata: "
            },
            {
              "kind": "Reference",
              "text": "HasOneDefinition",
              "canonicalReference": "@loopback/repository!HasOneDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ", targetRepositoryGetter: "
            },
            {
              "kind": "Reference",
              "text": "Getter",
              "canonicalReference": "@loopback/context!Getter:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, TargetID>>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "HasOneRepositoryFactory",
              "canonicalReference": "@loopback/repository!HasOneRepositoryFactory:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, ForeignKeyType>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 10,
            "endIndex": 12
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "relationMetadata",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "targetRepositoryGetter",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ForeignKeyType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "createHasOneRepositoryFactory"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!CrudConnector:interface",
          "docComment": "/**\n * CRUD operations for connector implementations\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface CrudConnector extends "
            },
            {
              "kind": "Reference",
              "text": "Connector",
              "canonicalReference": "@loopback/repository!Connector:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "CrudConnector",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#count:member(1)",
              "docComment": "/**\n * Count matching entities\n *\n * @param modelClass - The model class\n *\n * @param where - The matching criteria\n *\n * @param options - Options for the operation\n *\n * @returns A promise of number of matching entities\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "count(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 17
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 11,
                    "endIndex": 12
                  }
                }
              ],
              "name": "count"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#create:member(1)",
              "docComment": "/**\n * Create a new entity\n *\n * @param modelClass - The model class\n *\n * @param entity - The entity instance or data\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the entity created\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", entity: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#createAll:member(1)",
              "docComment": "/**\n * Create multiple entities\n *\n * @param modelClass - The model class\n *\n * @param entities - An array of entity instances or data\n *\n * @param options - Options for the operation\n *\n * @returns A promise of an array of entities created\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "createAll?(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", entities: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 15
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "entities",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 8
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                }
              ],
              "name": "createAll"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#delete:member(1)",
              "docComment": "/**\n * Delete an entity\n *\n * @param modelClass - The model class\n *\n * @param entity - The entity instance or data\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entity is deleted, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete?(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", entity: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#deleteAll:member(1)",
              "docComment": "/**\n * Delete matching entities\n *\n * @param modelClass - The model class\n *\n * @param where - The matching criteria\n *\n * @param options - Options for the operation\n *\n * @returns A promise of number of matching entities deleted\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteAll(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 17
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 11,
                    "endIndex": 12
                  }
                }
              ],
              "name": "deleteAll"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#deleteById:member(1)",
              "docComment": "/**\n * Delete an entity by id\n *\n * @param modelClass - The model class\n *\n * @param id - The entity id value\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entity is deleted for the id, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteById?<IdType>(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", id: "
                },
                {
                  "kind": "Content",
                  "text": "IdType"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "IdType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "deleteById"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#exists:member(1)",
              "docComment": "/**\n * Check if an entity exists for the id\n *\n * @param modelClass - The model class\n *\n * @param id - The entity id value\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entity exists for the id, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "exists?<IdType>(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", id: "
                },
                {
                  "kind": "Content",
                  "text": "IdType"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "IdType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "exists"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#find:member(1)",
              "docComment": "/**\n * Find matching entities by the filter\n *\n * @param modelClass - The model class\n *\n * @param filter - The query filter\n *\n * @param options - Options for the operation\n *\n * @returns A promise of an array of entities found for the filter\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "find(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "find"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#findById:member(1)",
              "docComment": "/**\n * Find an entity by id\n *\n * @param modelClass - The model class\n *\n * @param id - The entity id value\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the entity found for the id\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "findById?<IdType>(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", id: "
                },
                {
                  "kind": "Content",
                  "text": "IdType"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "IdType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "findById"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#replaceById:member(1)",
              "docComment": "/**\n * Replace an entity by id\n *\n * @param modelClass - The model class\n *\n * @param id - The entity id value\n *\n * @param data - The data attributes to be updated\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entity is replaced for the id, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "replaceById?<IdType>(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", id: "
                },
                {
                  "kind": "Content",
                  "text": "IdType"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "IdType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "replaceById"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#save:member(1)",
              "docComment": "/**\n * Save an entity\n *\n * @param modelClass - The model class\n *\n * @param entity - The entity instance or data\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the entity saved\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "save?(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", entity: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "save"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#update:member(1)",
              "docComment": "/**\n * Update an entity\n *\n * @param modelClass - The model class\n *\n * @param entity - The entity instance or data\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entity is updated, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "update?(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", entity: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "update"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#updateAll:member(1)",
              "docComment": "/**\n * Update matching entities\n *\n * @param modelClass - The model class\n *\n * @param data - The data attributes to be updated\n *\n * @param where - The matching criteria\n *\n * @param options - Options for the operation\n *\n * @returns A promise of number of matching entities deleted\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateAll(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 15,
                "endIndex": 19
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 12
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 14
                  }
                }
              ],
              "name": "updateAll"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudConnector#updateById:member(1)",
              "docComment": "/**\n * Update an entity by id\n *\n * @param modelClass - The model class\n *\n * @param id - The entity id value\n *\n * @param data - The data attributes to be updated\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entity is updated for the id, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateById?<IdType>(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", id: "
                },
                {
                  "kind": "Content",
                  "text": "IdType"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "IdType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "updateById"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!CrudRepository:interface",
          "docComment": "/**\n * Basic CRUD operations for ValueObject and Entity. No ID is required.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface CrudRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "ValueObject",
              "canonicalReference": "@loopback/repository!ValueObject:class"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", Relations extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "Repository",
              "canonicalReference": "@loopback/repository!Repository:interface"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Relations",
              "constraintTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "defaultTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              }
            }
          ],
          "name": "CrudRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudRepository#count:member(1)",
              "docComment": "/**\n * Count matching records\n *\n * @param where - Matching criteria\n *\n * @param options - Options for the operations\n *\n * @returns A promise of number of records matched\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "count(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "count"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudRepository#create:member(1)",
              "docComment": "/**\n * Create a new record\n *\n * @param dataObject - The data to be created\n *\n * @param options - Options for the operations\n *\n * @returns A promise of record created\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(dataObject: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataObject",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudRepository#createAll:member(1)",
              "docComment": "/**\n * Create all records\n *\n * @param dataObjects - An array of data to be created\n *\n * @param options - Options for the operations\n *\n * @returns A promise of an array of records created\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "createAll(dataObjects: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>[]"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataObjects",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "createAll"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudRepository#deleteAll:member(1)",
              "docComment": "/**\n * Delete matching records\n *\n * @param where - Matching criteria\n *\n * @param options - Options for the operations\n *\n * @returns A promise of number of records deleted\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteAll(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "deleteAll"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudRepository#find:member(1)",
              "docComment": "/**\n * Find matching records\n *\n * @param filter - Query filter\n *\n * @param options - Options for the operations\n *\n * @returns A promise of an array of records found\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "find(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<(T & Relations)[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "find"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!CrudRepository#updateAll:member(1)",
              "docComment": "/**\n * Updating matching records with attributes from the data object\n *\n * @param dataObject - The data to be updated\n *\n * @param where - Matching criteria\n *\n * @param options - Options for the operations\n *\n * @returns A promise of number of records updated\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateAll(dataObject: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataObject",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "updateAll"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 9,
              "endIndex": 11
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!CrudRepositoryImpl:class",
          "docComment": "/**\n * Repository implementation\n *\n * @example\n *\n * User can import `CrudRepositoryImpl` and call its functions like: `CrudRepositoryImpl.find(somefilters, someoptions)`\n *\n * Or extend class `CrudRepositoryImpl` and override its functions:\n * ```ts\n * export class TestRepository extends CrudRepositoryImpl<Test> {\n *   constructor(dataSource: DataSource, model: Test) {\n *     super(dataSource, Customer);\n *   }\n *\n *   // Override `deleteAll` to disable the operation\n *   deleteAll(where?: Where, options?: Options) {\n *     return Promise.reject(new Error('deleteAll is disabled'));\n *   }\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class CrudRepositoryImpl<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ID> implements "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T, ID> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "CrudRepositoryImpl",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `CrudRepositoryImpl` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(dataSource: "
                },
                {
                  "kind": "Reference",
                  "text": "DataSource",
                  "canonicalReference": "@loopback/repository!DataSource:interface"
                },
                {
                  "kind": "Content",
                  "text": ", entityClass: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": " & {\n        prototype: T;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataSource",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "entityClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 6
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#count:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "count(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "count"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#createAll:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "createAll(entities: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>[]"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entities",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "createAll"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#dataSource:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "dataSource: "
                },
                {
                  "kind": "Reference",
                  "text": "DataSource",
                  "canonicalReference": "@loopback/repository!DataSource:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "dataSource",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#delete:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#deleteAll:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteAll(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "deleteAll"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#deleteById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "deleteById"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#entityClass:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "entityClass: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": " & {\n        prototype: T;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "entityClass",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#execute:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "execute(command: "
                },
                {
                  "kind": "Reference",
                  "text": "Command",
                  "canonicalReference": "@loopback/repository!Command:type"
                },
                {
                  "kind": "Content",
                  "text": ", parameters: "
                },
                {
                  "kind": "Reference",
                  "text": "NamedParameters",
                  "canonicalReference": "@loopback/repository!NamedParameters:type"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "PositionalParameters",
                  "canonicalReference": "@loopback/repository!PositionalParameters:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "AnyObject",
                  "canonicalReference": "@loopback/repository!AnyObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "command",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "parameters",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "execute"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#exists:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "exists(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "exists"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#find:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "find(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "find"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#findById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "findById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "findById"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#inclusionResolvers:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly inclusionResolvers: "
                },
                {
                  "kind": "Reference",
                  "text": "Map",
                  "canonicalReference": "!Map:interface"
                },
                {
                  "kind": "Content",
                  "text": "<string, "
                },
                {
                  "kind": "Reference",
                  "text": "InclusionResolver",
                  "canonicalReference": "@loopback/repository!InclusionResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<T, "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "inclusionResolvers",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 7
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#replaceById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "replaceById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "replaceById"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#save:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "save(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "save"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#update:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "update(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "update"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#updateAll:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateAll(data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "updateAll"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!CrudRepositoryImpl#updateById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "updateById"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!DataObject:type",
          "docComment": "/**\n * Type alias for strongly or weakly typed objects of T\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type DataObject<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Content",
              "text": "T | "
            },
            {
              "kind": "Reference",
              "text": "DeepPartial",
              "canonicalReference": "@loopback/repository!DeepPartial:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "DataObject",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 6
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!DataSource:interface",
          "docComment": "/**\n * DataSource denotes a configured connector\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface DataSource "
            }
          ],
          "releaseTag": "Public",
          "name": "DataSource",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/repository!DataSource:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "[property: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "property",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!DataSource#connector:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "connector?: "
                },
                {
                  "kind": "Reference",
                  "text": "Connector",
                  "canonicalReference": "@loopback/repository!Connector:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "connector",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!DataSource#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!DataSource#settings:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "settings: "
                },
                {
                  "kind": "Reference",
                  "text": "AnyObject",
                  "canonicalReference": "@loopback/repository!AnyObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "settings",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!DATE:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "DATE: "
            },
            {
              "kind": "Reference",
              "text": "DateType",
              "canonicalReference": "@loopback/repository!DateType:class"
            }
          ],
          "releaseTag": "Public",
          "name": "DATE",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!DateType:class",
          "docComment": "/**\n * Date type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class DateType implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Date",
              "canonicalReference": "!Date:interface"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "name": "DateType",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DateType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DateType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Reference",
                  "text": "Date",
                  "canonicalReference": "!Date:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DateType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DateType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DateType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"date\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DateType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Reference",
                  "text": "Date",
                  "canonicalReference": "!Date:interface"
                },
                {
                  "kind": "Content",
                  "text": " | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!deduplicate:function(1)",
          "docComment": "/**\n * Dedupe an array\n *\n * @param input - an array of sourceIds\n *\n * @returns an array with unique items\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function deduplicate<T>(input: "
            },
            {
              "kind": "Content",
              "text": "T[]"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "T[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "input",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "deduplicate"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!DeepPartial:type",
          "docComment": "/**\n * An extension of the built-in Partial<T> type which allows partial values in deeply nested properties too.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type DeepPartial<T> = "
            },
            {
              "kind": "Content",
              "text": "{\n    [P in keyof T]?: "
            },
            {
              "kind": "Reference",
              "text": "DeepPartial",
              "canonicalReference": "@loopback/repository!DeepPartial:type"
            },
            {
              "kind": "Content",
              "text": "<T[P]>;\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "DeepPartial",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!DefaultBelongsToRepository:class",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class DefaultBelongsToRepository<TargetEntity extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetId, TargetRepository extends "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<TargetEntity, TargetId>"
            },
            {
              "kind": "Content",
              "text": "> implements "
            },
            {
              "kind": "Reference",
              "text": "BelongsToRepository",
              "canonicalReference": "@loopback/repository!BelongsToRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<TargetEntity> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "TargetEntity",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetId",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetRepository",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "DefaultBelongsToRepository",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!DefaultBelongsToRepository:constructor(1)",
              "docComment": "/**\n * Constructor of DefaultBelongsToEntityCrudRepository\n *\n * @param getTargetRepository - the getter of the related target model repository instance\n *\n * @param constraint - the key value pair representing foreign key name to constrain the target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(getTargetRepository: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetRepository>"
                },
                {
                  "kind": "Content",
                  "text": ", constraint: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "getTargetRepository",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "constraint",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultBelongsToRepository#constraint:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constraint: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "constraint",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultBelongsToRepository#get:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "get"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultBelongsToRepository#getTargetRepository:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getTargetRepository: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetRepository>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "getTargetRepository",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 6,
              "endIndex": 8
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!DefaultCrudRepository:class",
          "docComment": "/**\n * Default implementation of CRUD repository using legacy juggler model and data source\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class DefaultCrudRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ID, Relations extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": "> implements "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T, ID, Relations> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Relations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "DefaultCrudRepository",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#_createBelongsToAccessorFor:member(1)",
              "docComment": "/**\n * @deprecated\n *\n * Function to create a belongs to accessor\n *\n * Use `this.createBelongsToAccessorFor()` instead\n *\n * @param relationName - Name of the relation defined on the source model\n *\n * @param targetRepo - Target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected _createBelongsToAccessorFor<Target extends "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", TargetId>(relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", targetRepoGetter: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityCrudRepository",
                  "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, TargetId>>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "BelongsToAccessor",
                  "canonicalReference": "@loopback/repository!BelongsToAccessor:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, ID>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "relationName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "targetRepoGetter",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "Target",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "TargetId",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "_createBelongsToAccessorFor"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#_createHasManyRepositoryFactoryFor:member(1)",
              "docComment": "/**\n * @deprecated\n *\n * Function to create a constrained relation repository factory\n *\n * Use `this.createHasManyRepositoryFactoryFor()` instead\n *\n * @param relationName - Name of the relation defined on the source model\n *\n * @param targetRepo - Target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected _createHasManyRepositoryFactoryFor<Target extends "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", TargetID, ForeignKeyType>(relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", targetRepoGetter: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityCrudRepository",
                  "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, TargetID>>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "HasManyRepositoryFactory",
                  "canonicalReference": "@loopback/repository!HasManyRepositoryFactory:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, ForeignKeyType>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "relationName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "targetRepoGetter",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "Target",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "TargetID",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "ForeignKeyType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "_createHasManyRepositoryFactoryFor"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#_createHasOneRepositoryFactoryFor:member(1)",
              "docComment": "/**\n * @deprecated\n *\n * Function to create a constrained hasOne relation repository factory\n *\n * @param relationName - Name of the relation defined on the source model\n *\n * @param targetRepo - Target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected _createHasOneRepositoryFactoryFor<Target extends "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", TargetID, ForeignKeyType>(relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", targetRepoGetter: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityCrudRepository",
                  "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, TargetID>>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "HasOneRepositoryFactory",
                  "canonicalReference": "@loopback/repository!HasOneRepositoryFactory:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, ForeignKeyType>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "relationName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "targetRepoGetter",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "Target",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "TargetID",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "ForeignKeyType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "_createHasOneRepositoryFactoryFor"
            },
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository:constructor(1)",
              "docComment": "/**\n * Constructor of DefaultCrudRepository\n *\n * @param entityClass - Legacy entity class\n *\n * @param dataSource - Legacy data source\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(entityClass: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": " & {\n        prototype: T;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ", dataSource: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entityClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "dataSource",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#count:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "count(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "count"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#createAll:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "createAll(entities: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>[]"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entities",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "createAll"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#createBelongsToAccessorFor:member(1)",
              "docComment": "/**\n * Function to create a belongs to accessor\n *\n * @param relationName - Name of the relation defined on the source model\n *\n * @param targetRepo - Target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected createBelongsToAccessorFor<Target extends "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", TargetId>(relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", targetRepoGetter: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityCrudRepository",
                  "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, TargetId>>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "BelongsToAccessor",
                  "canonicalReference": "@loopback/repository!BelongsToAccessor:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, ID>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "relationName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "targetRepoGetter",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "Target",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "TargetId",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createBelongsToAccessorFor"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#createHasManyRepositoryFactoryFor:member(1)",
              "docComment": "/**\n * Function to create a constrained relation repository factory\n *\n * @param relationName - Name of the relation defined on the source model\n *\n * @param targetRepo - Target repository instance\n *\n * @example\n * ```ts\n * class CustomerRepository extends DefaultCrudRepository<\n *   Customer,\n *   typeof Customer.prototype.id,\n *   CustomerRelations\n * > {\n *   public readonly orders: HasManyRepositoryFactory<Order, typeof Customer.prototype.id>;\n *\n *   constructor(\n *     protected db: juggler.DataSource,\n *     orderRepository: EntityCrudRepository<Order, typeof Order.prototype.id>,\n *   ) {\n *     super(Customer, db);\n *     this.orders = this._createHasManyRepositoryFactoryFor(\n *       'orders',\n *       orderRepository,\n *     );\n *   }\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected createHasManyRepositoryFactoryFor<Target extends "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", TargetID, ForeignKeyType>(relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", targetRepoGetter: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityCrudRepository",
                  "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, TargetID>>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "HasManyRepositoryFactory",
                  "canonicalReference": "@loopback/repository!HasManyRepositoryFactory:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, ForeignKeyType>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "relationName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "targetRepoGetter",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "Target",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "TargetID",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "ForeignKeyType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createHasManyRepositoryFactoryFor"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#createHasOneRepositoryFactoryFor:member(1)",
              "docComment": "/**\n * Function to create a constrained hasOne relation repository factory\n *\n * @param relationName - Name of the relation defined on the source model\n *\n * @param targetRepo - Target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected createHasOneRepositoryFactoryFor<Target extends "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", TargetID, ForeignKeyType>(relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", targetRepoGetter: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "EntityCrudRepository",
                  "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, TargetID>>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "HasOneRepositoryFactory",
                  "canonicalReference": "@loopback/repository!HasOneRepositoryFactory:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target, ForeignKeyType>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "relationName",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "targetRepoGetter",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "Target",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "TargetID",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                },
                {
                  "typeParameterName": "ForeignKeyType",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "createHasOneRepositoryFactoryFor"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#dataSource:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "dataSource: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "dataSource",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#delete:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(entity: "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#deleteAll:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteAll(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "deleteAll"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#deleteById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "deleteById"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#entityClass:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "entityClass: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": " & {\n        prototype: T;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "entityClass",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#execute:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "execute(command: "
                },
                {
                  "kind": "Reference",
                  "text": "Command",
                  "canonicalReference": "@loopback/repository!Command:type"
                },
                {
                  "kind": "Content",
                  "text": ", parameters: "
                },
                {
                  "kind": "Reference",
                  "text": "NamedParameters",
                  "canonicalReference": "@loopback/repository!NamedParameters:type"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "PositionalParameters",
                  "canonicalReference": "@loopback/repository!PositionalParameters:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "AnyObject",
                  "canonicalReference": "@loopback/repository!AnyObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "command",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "parameters",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "execute"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#exists:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "exists(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "exists"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#find:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "find(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<(T & Relations)[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "find"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#findById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "findById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T & Relations>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "findById"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#findOne:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "findOne(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<(T & Relations) | null>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "findOne"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#includeRelatedModels:member(1)",
              "docComment": "/**\n * Returns model instances that include related models of this repository that have a registered resolver.\n *\n * @param entities - An array of entity instances or data\n *\n * @param include - Inclusion filter\n *\n * @param options - Options for the operations\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected includeRelatedModels(entities: "
                },
                {
                  "kind": "Content",
                  "text": "T[]"
                },
                {
                  "kind": "Content",
                  "text": ", include?: "
                },
                {
                  "kind": "Reference",
                  "text": "Inclusion",
                  "canonicalReference": "@loopback/repository!Inclusion:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>[]"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<(T & Relations)[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entities",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "include",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "includeRelatedModels"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#inclusionResolvers:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly inclusionResolvers: "
                },
                {
                  "kind": "Reference",
                  "text": "Map",
                  "canonicalReference": "!Map:interface"
                },
                {
                  "kind": "Content",
                  "text": "<string, "
                },
                {
                  "kind": "Reference",
                  "text": "InclusionResolver",
                  "canonicalReference": "@loopback/repository!InclusionResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<T, "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "inclusionResolvers",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 7
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#modelClass:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.PersistedModelClass",
                  "canonicalReference": "loopback-datasource-juggler!PersistedModelClass:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "modelClass",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#normalizeFilter:member(1)",
              "docComment": "/**\n * Removes juggler's \"include\" filter as it does not apply to LoopBack 4 relations.\n *\n * @param filter - Query filter\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected normalizeFilter(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "legacy."
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "loopback-datasource-juggler!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "normalizeFilter"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#registerInclusionResolver:member(1)",
              "docComment": "/**\n * Register an inclusion resolver for the related model name.\n *\n * @param relationName - Name of the relation defined on the source model\n *\n * @param resolver - Resolver function for getting related model entities\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "registerInclusionResolver(relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", resolver: "
                },
                {
                  "kind": "Reference",
                  "text": "InclusionResolver",
                  "canonicalReference": "@loopback/repository!InclusionResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<T, "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "relationName",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "resolver",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 7
                  }
                }
              ],
              "name": "registerInclusionResolver"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#replaceById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "replaceById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "replaceById"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#save:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "save(entity: "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "save"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#toEntities:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected toEntities<R extends "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">(models: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.PersistedModel",
                  "canonicalReference": "loopback-datasource-juggler!PersistedModel:class"
                },
                {
                  "kind": "Content",
                  "text": "[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "R[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "models",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "R",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "toEntities"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#toEntity:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected toEntity<R extends "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ">(model: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.PersistedModel",
                  "canonicalReference": "loopback-datasource-juggler!PersistedModel:class"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "R"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "model",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "R",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "toEntity"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#update:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "update(entity: "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "update"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#updateAll:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateAll(data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "updateAll"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository#updateById:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "updateById"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 7,
              "endIndex": 9
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!DefaultHasManyRepository:class",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class DefaultHasManyRepository<TargetEntity extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetID, TargetRepository extends "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<TargetEntity, TargetID>"
            },
            {
              "kind": "Content",
              "text": "> implements "
            },
            {
              "kind": "Reference",
              "text": "HasManyRepository",
              "canonicalReference": "@loopback/repository!HasManyRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<TargetEntity> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "TargetEntity",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetRepository",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "DefaultHasManyRepository",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!DefaultHasManyRepository:constructor(1)",
              "docComment": "/**\n * Constructor of DefaultHasManyEntityCrudRepository\n *\n * @param getTargetRepository - the getter of the related target model repository instance\n *\n * @param constraint - the key value pair representing foreign key name to constrain the target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(getTargetRepository: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetRepository>"
                },
                {
                  "kind": "Content",
                  "text": ", constraint: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "getTargetRepository",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "constraint",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultHasManyRepository#constraint:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constraint: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "constraint",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasManyRepository#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(targetModelData: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "targetModelData",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasManyRepository#delete:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasManyRepository#find:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "find(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "find"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultHasManyRepository#getTargetRepository:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getTargetRepository: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetRepository>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "getTargetRepository",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasManyRepository#patch:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "patch(dataObject: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataObject",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "patch"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 6,
              "endIndex": 8
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!DefaultHasOneRepository:class",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class DefaultHasOneRepository<TargetEntity extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetID, TargetRepository extends "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<TargetEntity, TargetID>"
            },
            {
              "kind": "Content",
              "text": "> implements "
            },
            {
              "kind": "Reference",
              "text": "HasOneRepository",
              "canonicalReference": "@loopback/repository!HasOneRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<TargetEntity> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "TargetEntity",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetRepository",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "DefaultHasOneRepository",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!DefaultHasOneRepository:constructor(1)",
              "docComment": "/**\n * Constructor of DefaultHasOneEntityCrudRepository\n *\n * @param getTargetRepository - the getter of the related target model repository instance\n *\n * @param constraint - the key value pair representing foreign key name to constrain the target repository instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(getTargetRepository: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetRepository>"
                },
                {
                  "kind": "Content",
                  "text": ", constraint: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "getTargetRepository",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "constraint",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultHasOneRepository#constraint:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constraint: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "constraint",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasOneRepository#create:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(targetModelData: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "targetModelData",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasOneRepository#delete:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasOneRepository#get:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Pick",
                  "canonicalReference": "!Pick:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>, "
                },
                {
                  "kind": "Reference",
                  "text": "Exclude",
                  "canonicalReference": "!Exclude:type"
                },
                {
                  "kind": "Content",
                  "text": "<keyof "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>, 'where'>>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ],
              "name": "get"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultHasOneRepository#getTargetRepository:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getTargetRepository: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetRepository>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "getTargetRepository",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultHasOneRepository#patch:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "patch(dataObject: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<TargetEntity>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataObject",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "patch"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 6,
              "endIndex": 8
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!DefaultKeyValueRepository:class",
          "docComment": "/**\n * An implementation of KeyValueRepository based on loopback-datasource-juggler\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class DefaultKeyValueRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> implements "
            },
            {
              "kind": "Reference",
              "text": "KeyValueRepository",
              "canonicalReference": "@loopback/repository!KeyValueRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "DefaultKeyValueRepository",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository:constructor(1)",
              "docComment": "/**\n * Construct a KeyValueRepository with a legacy DataSource\n *\n * @param ds - Legacy DataSource\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(entityClass: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": " & {\n        prototype: T;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ", ds: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entityClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "ds",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#delete:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#deleteAll:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteAll(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "deleteAll"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#expire:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "expire(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", ttl: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "ttl",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                }
              ],
              "name": "expire"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#get:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "get"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#keys:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "keys(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "KeyValueFilter",
                  "canonicalReference": "@loopback/repository!KeyValueFilter:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "AsyncIterable",
                  "canonicalReference": "!AsyncIterable:interface"
                },
                {
                  "kind": "Content",
                  "text": "<string>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "keys"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#kvModelClass:member",
              "docComment": "/**\n * A legacy KeyValueModel class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "kvModelClass: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.KeyValueModel",
                  "canonicalReference": "loopback-datasource-juggler!KeyValueModel:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "kvModelClass",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#set:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "set(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", value: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "set"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#toEntity:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "protected toEntity(modelData: "
                },
                {
                  "kind": "Content",
                  "text": "legacy."
                },
                {
                  "kind": "Reference",
                  "text": "ModelData",
                  "canonicalReference": "loopback-datasource-juggler!ModelData:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelData",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "toEntity"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultKeyValueRepository#ttl:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ttl(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<number>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "ttl"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!DefaultTransactionalRepository:class",
          "docComment": "/**\n * Default implementation of CRUD repository using legacy juggler model and data source with beginTransaction() method for connectors which support Transactions\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class DefaultTransactionalRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ID, Relations extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "DefaultCrudRepository",
              "canonicalReference": "@loopback/repository!DefaultCrudRepository:class"
            },
            {
              "kind": "Content",
              "text": "<T, ID, Relations> "
            },
            {
              "kind": "Content",
              "text": "implements "
            },
            {
              "kind": "Reference",
              "text": "TransactionalEntityRepository",
              "canonicalReference": "@loopback/repository!TransactionalEntityRepository:type"
            },
            {
              "kind": "Content",
              "text": "<T, ID, Relations> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Relations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "DefaultTransactionalRepository",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!DefaultTransactionalRepository#beginTransaction:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "beginTransaction(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "IsolationLevel",
                  "canonicalReference": "@loopback/repository!IsolationLevel:enum"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Transaction",
                  "canonicalReference": "@loopback/repository!Transaction:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                }
              ],
              "name": "beginTransaction"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 7,
            "endIndex": 9
          },
          "implementsTokenRanges": [
            {
              "startIndex": 10,
              "endIndex": 12
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Direction:type",
          "docComment": "/**\n * Order by direction\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Direction = "
            },
            {
              "kind": "Content",
              "text": "'ASC' | 'DESC'"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Direction",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!embedsMany:function(1)",
          "docComment": "/**\n * Decorator for embedsMany\n *\n * @param  - definition\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function embedsMany(definition?: "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator",
              "canonicalReference": "!PropertyDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "embedsMany"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!embedsOne:function(1)",
          "docComment": "/**\n * Decorator for embedsOne\n *\n * @param  - definition\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function embedsOne(definition?: "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator",
              "canonicalReference": "!PropertyDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "embedsOne"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!ensurePromise:function(1)",
          "docComment": "/**\n * Ensure the value is a promise\n *\n * @param p - Promise or void\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function ensurePromise<T>(p: "
            },
            {
              "kind": "Content",
              "text": "legacy."
            },
            {
              "kind": "Reference",
              "text": "PromiseOrVoid",
              "canonicalReference": "loopback-datasource-juggler!PromiseOrVoid:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "p",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ensurePromise"
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!Entity:class",
          "docComment": "/**\n * Base class for entities which have unique ids\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare abstract class Entity extends "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": " "
            },
            {
              "kind": "Content",
              "text": "implements "
            },
            {
              "kind": "Reference",
              "text": "Persistable",
              "canonicalReference": "@loopback/repository!Persistable:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "Entity",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!Entity.buildWhereForId:member(1)",
              "docComment": "/**\n * Build the where object for the given id\n *\n * @param id - The id value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static buildWhereForId(id: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "buildWhereForId"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!Entity#getId:member(1)",
              "docComment": "/**\n * Get the identity value. If the identity is a composite key, returns an object.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getId(): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "getId"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!Entity#getIdObject:member(1)",
              "docComment": "/**\n * Get the identity as an object, such as `{id: 1}` or `{schoolId: 1, studentId: 2}`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getIdObject(): "
                },
                {
                  "kind": "Reference",
                  "text": "Object",
                  "canonicalReference": "!Object:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "getIdObject"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!Entity.getIdOf:member(1)",
              "docComment": "/**\n * Get the identity value for a given entity instance or entity data object.\n *\n * @param entityOrData - The data object for which to determine the identity value.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static getIdOf(entityOrData: "
                },
                {
                  "kind": "Reference",
                  "text": "AnyObject",
                  "canonicalReference": "@loopback/repository!AnyObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entityOrData",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "getIdOf"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!Entity.getIdProperties:member(1)",
              "docComment": "/**\n * Get the names of identity properties (primary keys).\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static getIdProperties(): "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "getIdProperties"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 1,
            "endIndex": 3
          },
          "implementsTokenRanges": [
            {
              "startIndex": 4,
              "endIndex": 6
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!EntityCrudRepository:interface",
          "docComment": "/**\n * CRUD operations for a repository of entities\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface EntityCrudRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ID, Relations extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "EntityRepository",
              "canonicalReference": "@loopback/repository!EntityRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T, ID>"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "CrudRepository",
              "canonicalReference": "@loopback/repository!CrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T, Relations> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Relations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "EntityCrudRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#delete:member(1)",
              "docComment": "/**\n * Delete an entity\n *\n * @param entity - Entity to be deleted\n *\n * @param options - Options for the operations\n *\n * @returns A promise that will be resolve if the operation succeeded or will be rejected if the entity was not found.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#deleteById:member(1)",
              "docComment": "/**\n * Delete an entity by id\n *\n * @param id - Value for the entity id\n *\n * @param options - Options for the operations\n *\n * @returns A promise that will be resolve if the operation succeeded or will be rejected if the entity was not found.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "deleteById"
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#entityClass:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "entityClass: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": " & {\n        prototype: T;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "entityClass",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              }
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#exists:member(1)",
              "docComment": "/**\n * Check if an entity exists for the given id\n *\n * @param id - Value for the entity id\n *\n * @param options - Options for the operations\n *\n * @returns Promise<true> if an entity exists for the id, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "exists(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "exists"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#findById:member(1)",
              "docComment": "/**\n * Find an entity by id, return a rejected promise if not found.\n *\n * @param id - Value for the entity id\n *\n * @param filter - Additional query options. E.g. `filter.include` configures which related models to fetch as part of the database query (or queries).\n *\n * @param options - Options for the operations\n *\n * @returns A promise of an entity found for the id\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "findById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T & Relations>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "findById"
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#inclusionResolvers:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "inclusionResolvers: "
                },
                {
                  "kind": "Reference",
                  "text": "Map",
                  "canonicalReference": "!Map:interface"
                },
                {
                  "kind": "Content",
                  "text": "<string, "
                },
                {
                  "kind": "Reference",
                  "text": "InclusionResolver",
                  "canonicalReference": "@loopback/repository!InclusionResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<T, "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "inclusionResolvers",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 7
              }
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#replaceById:member(1)",
              "docComment": "/**\n * Replace an entity by id\n *\n * @param id - Value for the entity id\n *\n * @param data - Data attributes to be replaced\n *\n * @param options - Options for the operations\n *\n * @returns A promise that will be resolve if the operation succeeded or will be rejected if the entity was not found.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "replaceById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "replaceById"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#save:member(1)",
              "docComment": "/**\n * Save an entity. If no id is present, create a new entity\n *\n * @param entity - Entity to be saved\n *\n * @param options - Options for the operations\n *\n * @returns A promise that will be resolve if the operation succeeded or will be rejected if the entity was not found.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "save(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "save"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#update:member(1)",
              "docComment": "/**\n * Update an entity\n *\n * @param entity - Entity to be updated\n *\n * @param options - Options for the operations\n *\n * @returns A promise that will be resolve if the operation succeeded or will be rejected if the entity was not found.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "update(entity: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entity",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "update"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!EntityCrudRepository#updateById:member(1)",
              "docComment": "/**\n * Update an entity by id with property/value pairs in the data object\n *\n * @param id - Value for the entity id\n *\n * @param data - Data attributes to be updated\n *\n * @param options - Options for the operations\n *\n * @returns A promise that will be resolve if the operation succeeded or will be rejected if the entity was not found.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "updateById(id: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", data: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "id",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "updateById"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 7,
              "endIndex": 9
            },
            {
              "startIndex": 10,
              "endIndex": 12
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!EntityData:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type EntityData = "
            },
            {
              "kind": "Reference",
              "text": "DataObject",
              "canonicalReference": "@loopback/repository!DataObject:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "EntityData",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!EntityNotFoundError:class",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class EntityNotFoundError<ID, Props extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "Error",
              "canonicalReference": "!Error:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "ID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Props",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "EntityNotFoundError",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!EntityNotFoundError:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `EntityNotFoundError` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(entityOrName: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": " | string"
                },
                {
                  "kind": "Content",
                  "text": ", entityId: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ", extraProperties?: "
                },
                {
                  "kind": "Content",
                  "text": "Props"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "entityOrName",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "entityId",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "extraProperties",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!EntityNotFoundError#code:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "code: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "code",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!EntityNotFoundError#entityId:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "entityId: "
                },
                {
                  "kind": "Content",
                  "text": "ID"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "entityId",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!EntityNotFoundError#entityName:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "entityName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "entityName",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            }
          ],
          "extendsTokenRange": {
            "startIndex": 5,
            "endIndex": 7
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!EntityRepository:interface",
          "docComment": "/**\n * Base interface for a repository of entities\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface EntityRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ID> extends "
            },
            {
              "kind": "Reference",
              "text": "ExecutableRepository",
              "canonicalReference": "@loopback/repository!ExecutableRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "EntityRepository",
          "members": [],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!EntityResolver:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type EntityResolver<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Reference",
              "text": "TypeResolver",
              "canonicalReference": "@loopback/repository!TypeResolver:type"
            },
            {
              "kind": "Content",
              "text": "<T, typeof "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "EntityResolver",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 7
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!Event:class",
          "docComment": "/**\n * Domain events\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class Event "
            }
          ],
          "releaseTag": "Public",
          "name": "Event",
          "members": [
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!Event#source:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "source: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "source",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!Event#type:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!ExecutableRepository:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ExecutableRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "Repository",
              "canonicalReference": "@loopback/repository!Repository:interface"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ExecutableRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!ExecutableRepository#execute:member(1)",
              "docComment": "/**\n * Execute a query with the given parameter object or an array of parameters\n *\n * @param command - The query string or command object\n *\n * @param parameters - The object with name/value pairs or an array of parameter values\n *\n * @param options - Options\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "execute(command: "
                },
                {
                  "kind": "Reference",
                  "text": "Command",
                  "canonicalReference": "@loopback/repository!Command:type"
                },
                {
                  "kind": "Content",
                  "text": ", parameters: "
                },
                {
                  "kind": "Reference",
                  "text": "NamedParameters",
                  "canonicalReference": "@loopback/repository!NamedParameters:type"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "PositionalParameters",
                  "canonicalReference": "@loopback/repository!PositionalParameters:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "AnyObject",
                  "canonicalReference": "@loopback/repository!AnyObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "command",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "parameters",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "execute"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Fields:type",
          "docComment": "/**\n * Selection of fields\n *\n * Example: `{afieldname: true}`\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Fields<MT = "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Content",
              "text": "{\n    [P in keyof MT]?: boolean;\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Fields",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Filter:interface",
          "docComment": "/**\n * Query filter object\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Filter<MT extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "Filter",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Filter#fields:member",
              "docComment": "/**\n * To include/exclude fields\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "fields?: "
                },
                {
                  "kind": "Reference",
                  "text": "Fields",
                  "canonicalReference": "@loopback/repository!Fields:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "fields",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Filter#include:member",
              "docComment": "/**\n * To include related objects\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "include?: "
                },
                {
                  "kind": "Reference",
                  "text": "Inclusion",
                  "canonicalReference": "@loopback/repository!Inclusion:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT>[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "include",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Filter#limit:member",
              "docComment": "/**\n * Maximum number of entities\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "limit?: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "limit",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Filter#offset:member",
              "docComment": "/**\n * Offset N number of entities. An alias for `skip`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "offset?: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "offset",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Filter#order:member",
              "docComment": "/**\n * Sorting order for matched entities. Each item should be formatted as `fieldName ASC` or `fieldName DESC`. For example: `['f1 ASC', 'f2 DESC', 'f3 ASC']`.\n *\n * We might want to use `Order` in the future. Keep it as `string[]` for now for compatibility with LoopBack 3.x.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "order?: "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "order",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Filter#skip:member",
              "docComment": "/**\n * Skip N number of entities\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "skip?: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "skip",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Filter#where:member",
              "docComment": "/**\n * The matching criteria\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "where",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!FilterBuilder:class",
          "docComment": "/**\n * A builder for Filter. It provides fleunt APIs to add clauses such as `fields`, `order`, `where`, `limit`, `offset`, and `include`.\n *\n * @example\n * ```ts\n * const filterBuilder = new FilterBuilder();\n * const filter = filterBuilder\n *   .fields('id', a', 'b')\n *   .limit(10)\n *   .offset(0)\n *   .order(['a ASC', 'b DESC'])\n *   .where({id: 1})\n *   .build();\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class FilterBuilder<MT extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "FilterBuilder",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!FilterBuilder:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `FilterBuilder` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(f?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "f",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#build:member(1)",
              "docComment": "/**\n * Return the filter object\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "build(): "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "build"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#fields:member(1)",
              "docComment": "/**\n * Describe what fields to be included/excluded\n *\n * @param f - A field name to be included, an array of field names to be included, or an Fields object for the inclusion/exclusion\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "fields(...f: "
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "Fields",
                  "canonicalReference": "@loopback/repository!Fields:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT> | (keyof MT)[] | keyof MT)[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "f",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                }
              ],
              "name": "fields"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!FilterBuilder#filter:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "filter: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "filter",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#impose:member(1)",
              "docComment": "/**\n * Add a Filter or Where constraint object. If it is a filter object, create an `and` clause for conflicting keys with its where object. For any other properties, throw an error. If it's not a Filter, coerce it to a filter, and carry out the same logic.\n *\n * @param constraint - a constraint object to merge with own filter object\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "impose(constraint: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT> | "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "constraint",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                }
              ],
              "name": "impose"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#include:member(1)",
              "docComment": "/**\n * Declare `include`\n *\n * @param i - A relation name, an array of relation names, or an `Inclusion` object for the relation/scope definitions\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "include(...i: "
                },
                {
                  "kind": "Content",
                  "text": "(string | string[] | "
                },
                {
                  "kind": "Reference",
                  "text": "Inclusion",
                  "canonicalReference": "@loopback/repository!Inclusion:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT>)[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "i",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                }
              ],
              "name": "include"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#limit:member(1)",
              "docComment": "/**\n * Set `limit`\n *\n * @param limit - Maximum number of records to be returned\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "limit(limit: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "limit",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "limit"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#offset:member(1)",
              "docComment": "/**\n * Set `offset`\n *\n * @param offset - Offset of the number of records to be returned\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "offset(offset: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "offset",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "offset"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#order:member(1)",
              "docComment": "/**\n * Describe the sorting order\n *\n * @param o - A field name with optional direction, an array of field names, or an Order object for the field/direction pairs\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "order(...o: "
                },
                {
                  "kind": "Content",
                  "text": "(string | string[] | "
                },
                {
                  "kind": "Reference",
                  "text": "Order",
                  "canonicalReference": "@loopback/repository!Order:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>)[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "o",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                }
              ],
              "name": "order"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#skip:member(1)",
              "docComment": "/**\n * Alias to `offset`\n *\n * @param  - skip\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "skip(skip: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "skip",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "skip"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!FilterBuilder#where:member(1)",
              "docComment": "/**\n * Declare a where clause\n *\n * @param w - Where object\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "where(w: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "w",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "where"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!filterTemplate:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function filterTemplate(strings: "
            },
            {
              "kind": "Reference",
              "text": "TemplateStringsArray",
              "canonicalReference": "!TemplateStringsArray:interface"
            },
            {
              "kind": "Content",
              "text": ", ...keys: "
            },
            {
              "kind": "Content",
              "text": "any[]"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(ctx: "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": ") => any"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 8
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "strings",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "keys",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "filterTemplate"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!findByForeignKeys:function(1)",
          "docComment": "/**\n * Finds model instances that contain any of the provided foreign key values.\n *\n * @param targetRepository - The target repository where the model instances are found\n *\n * @param fkName - Name of the foreign key\n *\n * @param fkValues - One value or array of values of the foreign key to be included\n *\n * @param scope - Additional scope constraints (not currently supported)\n *\n * @param options - Options for the operations\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function findByForeignKeys<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", TargetRelations extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ", ForeignKey extends "
            },
            {
              "kind": "Reference",
              "text": "StringKeyOf",
              "canonicalReference": "@loopback/repository!StringKeyOf:type"
            },
            {
              "kind": "Content",
              "text": "<Target>"
            },
            {
              "kind": "Content",
              "text": ">(targetRepository: "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<Target, unknown, TargetRelations>"
            },
            {
              "kind": "Content",
              "text": ", fkName: "
            },
            {
              "kind": "Content",
              "text": "ForeignKey"
            },
            {
              "kind": "Content",
              "text": ", fkValues: "
            },
            {
              "kind": "Content",
              "text": "Target[ForeignKey][] | Target[ForeignKey]"
            },
            {
              "kind": "Content",
              "text": ", scope?: "
            },
            {
              "kind": "Reference",
              "text": "Filter",
              "canonicalReference": "@loopback/repository!Filter:interface"
            },
            {
              "kind": "Content",
              "text": "<Target>"
            },
            {
              "kind": "Content",
              "text": ", options?: "
            },
            {
              "kind": "Reference",
              "text": "Options",
              "canonicalReference": "@loopback/repository!Options:type"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<(Target & TargetRelations)[]>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 20,
            "endIndex": 22
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "targetRepository",
              "parameterTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              }
            },
            {
              "parameterName": "fkName",
              "parameterTypeTokenRange": {
                "startIndex": 11,
                "endIndex": 12
              }
            },
            {
              "parameterName": "fkValues",
              "parameterTypeTokenRange": {
                "startIndex": 13,
                "endIndex": 14
              }
            },
            {
              "parameterName": "scope",
              "parameterTypeTokenRange": {
                "startIndex": 15,
                "endIndex": 17
              }
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 18,
                "endIndex": 19
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "TargetRelations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ForeignKey",
              "constraintTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "findByForeignKeys"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!flattenMapByKeys:function(1)",
          "docComment": "/**\n * Returns an array of instances from the target map. The order of arrays is based on the order of sourceIds\n *\n * @param sourceIds - One value or array of values (of the target key)\n *\n * @param targetMap - a map that matches sourceIds with instances\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function flattenMapByKeys<T>(sourceIds: "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": ", targetMap: "
            },
            {
              "kind": "Reference",
              "text": "Map",
              "canonicalReference": "!Map:interface"
            },
            {
              "kind": "Content",
              "text": "<unknown, T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(T | undefined)[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 6,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "sourceIds",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "targetMap",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "flattenMapByKeys"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!flattenTargetsOfOneToManyRelation:function(1)",
          "docComment": "/**\n * Returns an array of instances. The order of arrays is based on as a result of one to many relation. The order of arrays is based on the order of sourceIds\n *\n * @param sourceIds - One value or array of values of the target key\n *\n * @param targetEntities - target entities that satisfy targetKey's value (ids).\n *\n * @param targetKey - name of the target key\n *\n * @return\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function flattenTargetsOfOneToManyRelation<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">(sourceIds: "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": ", targetEntities: "
            },
            {
              "kind": "Content",
              "text": "Target[]"
            },
            {
              "kind": "Content",
              "text": ", targetKey: "
            },
            {
              "kind": "Reference",
              "text": "StringKeyOf",
              "canonicalReference": "@loopback/repository!StringKeyOf:type"
            },
            {
              "kind": "Content",
              "text": "<Target>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(Target[] | undefined)[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 10,
            "endIndex": 11
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "sourceIds",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "targetEntities",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "targetKey",
              "parameterTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "flattenTargetsOfOneToManyRelation"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!flattenTargetsOfOneToOneRelation:function(1)",
          "docComment": "/**\n * Returns an array of instances. The order of arrays is based on the order of sourceIds\n *\n * @param sourceIds - One value or array of values of the target key\n *\n * @param targetEntities - target entities that satisfy targetKey's value (ids).\n *\n * @param targetKey - name of the target key\n *\n * @return\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function flattenTargetsOfOneToOneRelation<SourceWithRelations extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">(sourceIds: "
            },
            {
              "kind": "Content",
              "text": "unknown[]"
            },
            {
              "kind": "Content",
              "text": ", targetEntities: "
            },
            {
              "kind": "Content",
              "text": "Target[]"
            },
            {
              "kind": "Content",
              "text": ", targetKey: "
            },
            {
              "kind": "Reference",
              "text": "StringKeyOf",
              "canonicalReference": "@loopback/repository!StringKeyOf:type"
            },
            {
              "kind": "Content",
              "text": "<Target>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(Target | undefined)[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 13
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "sourceIds",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            },
            {
              "parameterName": "targetEntities",
              "parameterTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              }
            },
            {
              "parameterName": "targetKey",
              "parameterTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 11
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "SourceWithRelations",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "flattenTargetsOfOneToOneRelation"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!getKeyValue:function(1)",
          "docComment": "/**\n * Returns value of a keyName. Aims to resolve ObjectId problem of Mongo.\n *\n * @param model - target model\n *\n * @param keyName - target key that gets the value from\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getKeyValue(model: "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": ", keyName: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "unknown"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "model",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "keyName",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "getKeyValue"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!getModelRelations:function(1)",
          "docComment": "/**\n * Get metadata of all relations defined on a given model class.\n *\n * @param modelCtor - The model class (the constructor function).\n *\n * @returns A map of relation definitions\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getModelRelations(modelCtor: "
            },
            {
              "kind": "Content",
              "text": "typeof "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "RelationDefinitionMap",
              "canonicalReference": "@loopback/repository!RelationDefinitionMap:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "getModelRelations"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!hasMany:function(1)",
          "docComment": "/**\n * Decorator for hasMany Calls property.array decorator underneath the hood and infers foreign key name from target model name unless explicitly specified\n *\n * @param targetResolver - Target model for hasMany relation\n *\n * @param definition - Optional metadata for setting up hasMany relation\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function hasMany<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">(targetResolver: "
            },
            {
              "kind": "Reference",
              "text": "EntityResolver",
              "canonicalReference": "@loopback/repository!EntityResolver:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ", definition?: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "HasManyDefinition",
              "canonicalReference": "@loopback/repository!HasManyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(decoratedTarget: object, key: string) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 11,
            "endIndex": 12
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "targetResolver",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "hasMany"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!HasManyDefinition:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HasManyDefinition extends "
            },
            {
              "kind": "Reference",
              "text": "RelationDefinitionBase",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "HasManyDefinition",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasManyDefinition#keyTo:member",
              "docComment": "/**\n * The foreign key used by the target model.\n *\n * E.g. when a Customer has many Order instances, then keyTo is \"customerId\". Note that \"customerId\" is the default FK assumed by the framework, users can provide a custom FK name by setting \"keyTo\".\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "keyTo?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "keyTo",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasManyDefinition#targetsMany:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "targetsMany: "
                },
                {
                  "kind": "Content",
                  "text": "true"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "targetsMany",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasManyDefinition#type:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationType.hasMany",
                  "canonicalReference": "@loopback/repository!RelationType.hasMany:member"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!HasManyRepository:interface",
          "docComment": "/**\n * CRUD operations for a target repository of a HasMany relation\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HasManyRepository<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "HasManyRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasManyRepository#create:member(1)",
              "docComment": "/**\n * Create a target model instance\n *\n * @param targetModelData - The target model data\n *\n * @param options - Options for the operation\n *\n * @returns A promise which resolves to the newly created target model instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(targetModelData: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "targetModelData",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasManyRepository#delete:member(1)",
              "docComment": "/**\n * Delete multiple target model instances\n *\n * @param where - Instances within the where scope are deleted\n *\n * @param  - options\n *\n * @returns A promise which resolves the deleted target model instances\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasManyRepository#find:member(1)",
              "docComment": "/**\n * Find target model instance(s)\n *\n * @param filter - A filter object for where, order, limit, etc.\n *\n * @param options - Options for the operation\n *\n * @returns A promise which resolves with the found target instance(s)\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "find(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "find"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasManyRepository#patch:member(1)",
              "docComment": "/**\n * Patch multiple target model instances\n *\n * @param dataObject - The fields and their new values to patch\n *\n * @param where - Instances within the where scope are patched\n *\n * @param  - options\n *\n * @returns A promise which resolves the patched target model instances\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "patch(dataObject: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ", where?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 13
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataObject",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "patch"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!HasManyRepositoryFactory:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HasManyRepositoryFactory<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ForeignKeyType> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ForeignKeyType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "HasManyRepositoryFactory",
          "members": [
            {
              "kind": "CallSignature",
              "canonicalReference": "@loopback/repository!HasManyRepositoryFactory:call(1)",
              "docComment": "/**\n * Invoke the function to obtain HasManyRepository.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "(fkValue: "
                },
                {
                  "kind": "Content",
                  "text": "ForeignKeyType"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "HasManyRepository",
                  "canonicalReference": "@loopback/repository!HasManyRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "fkValue",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasManyRepositoryFactory#inclusionResolver:member",
              "docComment": "/**\n * Use `resolver` property to obtain an InclusionResolver for this relation.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "inclusionResolver: "
                },
                {
                  "kind": "Reference",
                  "text": "InclusionResolver",
                  "canonicalReference": "@loopback/repository!InclusionResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "inclusionResolver",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!hasOne:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function hasOne<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ">(targetResolver: "
            },
            {
              "kind": "Reference",
              "text": "EntityResolver",
              "canonicalReference": "@loopback/repository!EntityResolver:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ", definition?: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "HasOneDefinition",
              "canonicalReference": "@loopback/repository!HasOneDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(decoratedTarget: object, key: string) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 11,
            "endIndex": 12
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "targetResolver",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "hasOne"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!HasOneDefinition:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HasOneDefinition extends "
            },
            {
              "kind": "Reference",
              "text": "RelationDefinitionBase",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "HasOneDefinition",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasOneDefinition#keyTo:member",
              "docComment": "/**\n * The foreign key used by the target model.\n *\n * E.g. when a Customer has one Address instance, then keyTo is \"customerId\". Note that \"customerId\" is the default FK assumed by the framework, users can provide a custom FK name by setting \"keyTo\".\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "keyTo?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "keyTo",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasOneDefinition#targetsMany:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "targetsMany: "
                },
                {
                  "kind": "Content",
                  "text": "false"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "targetsMany",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasOneDefinition#type:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationType.hasOne",
                  "canonicalReference": "@loopback/repository!RelationType.hasOne:member"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!HasOneRepository:interface",
          "docComment": "/**\n * CRUD operations for a target repository of a HasMany relation\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HasOneRepository<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "HasOneRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasOneRepository#create:member(1)",
              "docComment": "/**\n * Create a target model instance\n *\n * @param targetModelData - The target model data\n *\n * @param options - Options for the operation\n *\n * @returns A promise which resolves to the newly created target model instance\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "create(targetModelData: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "targetModelData",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "create"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasOneRepository#delete:member(1)",
              "docComment": "/**\n * Delete the related target model instance\n *\n * @param  - options\n *\n * @returns A promise which resolves the deleted target model instances\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasOneRepository#get:member(1)",
              "docComment": "/**\n * Find the only target model instance that belongs to the declaring model.\n *\n * @param filter - Query filter without a Where condition\n *\n * @param options - Options for the operations\n *\n * @returns A promise of the target object or null if not found.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Pick",
                  "canonicalReference": "!Pick:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>, "
                },
                {
                  "kind": "Reference",
                  "text": "Exclude",
                  "canonicalReference": "!Exclude:type"
                },
                {
                  "kind": "Content",
                  "text": "<keyof "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>, 'where'>>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ],
              "name": "get"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!HasOneRepository#patch:member(1)",
              "docComment": "/**\n * Patch the related target model instance\n *\n * @param dataObject - The target model fields and their new values to patch\n *\n * @param  - options\n *\n * @returns A promise which resolves the patched target model instances\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "patch(dataObject: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Count",
                  "canonicalReference": "@loopback/repository!Count:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataObject",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "patch"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!HasOneRepositoryFactory:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface HasOneRepositoryFactory<Target extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ForeignKeyType> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "Target",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ForeignKeyType",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "HasOneRepositoryFactory",
          "members": [
            {
              "kind": "CallSignature",
              "canonicalReference": "@loopback/repository!HasOneRepositoryFactory:call(1)",
              "docComment": "/**\n * Invoke the function to obtain HasOneRepository.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "(fkValue: "
                },
                {
                  "kind": "Content",
                  "text": "ForeignKeyType"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "HasOneRepository",
                  "canonicalReference": "@loopback/repository!HasOneRepository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "fkValue",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!HasOneRepositoryFactory#inclusionResolver:member",
              "docComment": "/**\n * Use `resolver` property to obtain an InclusionResolver for this relation.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "inclusionResolver: "
                },
                {
                  "kind": "Reference",
                  "text": "InclusionResolver",
                  "canonicalReference": "@loopback/repository!InclusionResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", Target>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "inclusionResolver",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!includeRelatedModels:function(1)",
          "docComment": "/**\n * Returns model instances that include related models that have a registered resolver.\n *\n * @param targetRepository - The target repository where the model instances are found\n *\n * @param entities - An array of entity instances or data\n *\n * @param include - Inclusion filter\n *\n * @param options - Options for the operations\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function includeRelatedModels<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", Relations extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": ">(targetRepository: "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T, unknown, Relations>"
            },
            {
              "kind": "Content",
              "text": ", entities: "
            },
            {
              "kind": "Content",
              "text": "T[]"
            },
            {
              "kind": "Content",
              "text": ", include?: "
            },
            {
              "kind": "Reference",
              "text": "Inclusion",
              "canonicalReference": "@loopback/repository!Inclusion:interface"
            },
            {
              "kind": "Content",
              "text": "<T>[]"
            },
            {
              "kind": "Content",
              "text": ", options?: "
            },
            {
              "kind": "Reference",
              "text": "Options",
              "canonicalReference": "@loopback/repository!Options:type"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<(T & Relations)[]>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 17,
            "endIndex": 19
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "targetRepository",
              "parameterTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              }
            },
            {
              "parameterName": "entities",
              "parameterTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              }
            },
            {
              "parameterName": "include",
              "parameterTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              }
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 15,
                "endIndex": 16
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Relations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "includeRelatedModels"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Inclusion:interface",
          "docComment": "/**\n * Inclusion of related items\n *\n * Note: scope means filter on related items\n *\n * Example: `{relation: 'aRelationName', scope: {<AFilterObject>}}`\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Inclusion<MT extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "Inclusion",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Inclusion#relation:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "relation: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "relation",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Inclusion#scope:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "scope?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "AnyObject",
                  "canonicalReference": "@loopback/repository!AnyObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "scope",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!InclusionResolver:type",
          "docComment": "/**\n * @returns An array of resolved values, the items must be ordered in the same way as `sourceEntities`. The resolved value can be one of: - `undefined` when no target model(s) were found - `Entity` for relations targeting a single model - `Entity[]` for relations targeting multiple models\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type InclusionResolver<S extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Content",
              "text": "(\nsourceEntities: S[], \ninclusion: "
            },
            {
              "kind": "Reference",
              "text": "Inclusion",
              "canonicalReference": "@loopback/repository!Inclusion:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": ">, \noptions?: "
            },
            {
              "kind": "Reference",
              "text": "Options",
              "canonicalReference": "@loopback/repository!Options:type"
            },
            {
              "kind": "Content",
              "text": ") => "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<(T | undefined)[] | (T[] | undefined)[]>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "InclusionResolver",
          "typeParameters": [
            {
              "typeParameterName": "S",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 5,
            "endIndex": 14
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!InvalidRelationError:class",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class InvalidRelationError<Props extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "Error",
              "canonicalReference": "!Error:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "Props",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "InvalidRelationError",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!InvalidRelationError:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `InvalidRelationError` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(reason: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", relationMeta: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationMetadata",
                  "canonicalReference": "@loopback/repository!RelationMetadata:type"
                },
                {
                  "kind": "Content",
                  "text": ", extraProperties?: "
                },
                {
                  "kind": "Content",
                  "text": "Props"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "reason",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "relationMeta",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "extraProperties",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!InvalidRelationError#code:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "code: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "code",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!InvalidRelationError#reason:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "reason: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "reason",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!InvalidRelationError#relationName:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "relationName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "relationName",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!InvalidRelationError#relationType:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "relationType: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationType",
                  "canonicalReference": "@loopback/repository!RelationType:enum"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "relationType",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!InvalidRelationError#sourceModelName:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "sourceModelName: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "sourceModelName",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            }
          ],
          "extendsTokenRange": {
            "startIndex": 5,
            "endIndex": 7
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!isBsonType:function(1)",
          "docComment": "/**\n * Checks if the value is BsonType (mongodb) It uses a general way to check the type ,so that it can detect different versions of bson that might be used in the code base. Might need to update in the future.\n *\n * @param  - value\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function isBsonType(value: "
            },
            {
              "kind": "Content",
              "text": "unknown"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "value",
              "canonicalReference": "@loopback/repository!~value"
            },
            {
              "kind": "Content",
              "text": " is object"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "isBsonType"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!isBuiltinType:function(1)",
          "docComment": "/**\n * Check if the provided function is a built-in type provided by JavaScript and/or Node.js. E.g. `Number`, `Array`, `Buffer`, etc.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function isBuiltinType(fn: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "boolean"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "fn",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "isBuiltinType"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!isEntityNotFoundError:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function isEntityNotFoundError(e: "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "e",
              "canonicalReference": "@loopback/repository!~e"
            },
            {
              "kind": "Content",
              "text": " is "
            },
            {
              "kind": "Reference",
              "text": "EntityNotFoundError",
              "canonicalReference": "@loopback/repository!EntityNotFoundError:class"
            },
            {
              "kind": "Content",
              "text": "<any>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "e",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "isEntityNotFoundError"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!isFilter:function(1)",
          "docComment": "/**\n * TypeGuard for Filter\n *\n * @param  - candidate\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function isFilter<MT extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(candidate: "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "candidate",
              "canonicalReference": "@loopback/repository!~candidate"
            },
            {
              "kind": "Content",
              "text": " is "
            },
            {
              "kind": "Reference",
              "text": "Filter",
              "canonicalReference": "@loopback/repository!Filter:interface"
            },
            {
              "kind": "Content",
              "text": "<MT>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 9
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "candidate",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "isFilter"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!isInvalidRelationError:function(1)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function isInvalidRelationError(e: "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "e",
              "canonicalReference": "@loopback/repository!~e"
            },
            {
              "kind": "Content",
              "text": " is "
            },
            {
              "kind": "Reference",
              "text": "InvalidRelationError",
              "canonicalReference": "@loopback/repository!InvalidRelationError:class"
            },
            {
              "kind": "Content",
              "text": "<any>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "e",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "isInvalidRelationError"
        },
        {
          "kind": "Enum",
          "canonicalReference": "@loopback/repository!IsolationLevel:enum",
          "docComment": "/**\n * Isolation level\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare enum IsolationLevel "
            }
          ],
          "releaseTag": "Public",
          "name": "IsolationLevel",
          "members": [
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!IsolationLevel.READ_COMMITTED:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "READ_COMMITTED = "
                },
                {
                  "kind": "Content",
                  "text": "\"READ COMMITTED\""
                }
              ],
              "releaseTag": "Public",
              "name": "READ_COMMITTED",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!IsolationLevel.READ_UNCOMMITTED:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "READ_UNCOMMITTED = "
                },
                {
                  "kind": "Content",
                  "text": "\"READ UNCOMMITTED\""
                }
              ],
              "releaseTag": "Public",
              "name": "READ_UNCOMMITTED",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!IsolationLevel.REPEATABLE_READ:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "REPEATABLE_READ = "
                },
                {
                  "kind": "Content",
                  "text": "\"REPEATABLE READ\""
                }
              ],
              "releaseTag": "Public",
              "name": "REPEATABLE_READ",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!IsolationLevel.SERIALIZABLE:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "SERIALIZABLE = "
                },
                {
                  "kind": "Content",
                  "text": "\"SERIALIZABLE\""
                }
              ],
              "releaseTag": "Public",
              "name": "SERIALIZABLE",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!isTypeResolver:function(1)",
          "docComment": "/**\n * A function that checks whether a function is a TypeResolver or not.\n *\n * @param fn - The value to check.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function isTypeResolver<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(fn: "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "fn",
              "canonicalReference": "@loopback/repository!~fn"
            },
            {
              "kind": "Content",
              "text": " is "
            },
            {
              "kind": "Reference",
              "text": "TypeResolver",
              "canonicalReference": "@loopback/repository!TypeResolver:type"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 9
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "fn",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "isTypeResolver"
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@loopback/repository!juggler:namespace",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace juggler "
            }
          ],
          "releaseTag": "Public",
          "name": "juggler",
          "members": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!KeyOf:type",
          "docComment": "/**\n * Key types of a given model, excluding operators\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type KeyOf<MT extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Reference",
              "text": "Exclude",
              "canonicalReference": "!Exclude:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Extract",
              "canonicalReference": "!Extract:type"
            },
            {
              "kind": "Content",
              "text": "<keyof MT, string>, "
            },
            {
              "kind": "Reference",
              "text": "Operators",
              "canonicalReference": "@loopback/repository!Operators:type"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "KeyOf",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 9
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!KeyValueFilter:type",
          "docComment": "/**\n * Filter for keys\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type KeyValueFilter = "
            },
            {
              "kind": "Content",
              "text": "{\n    match: string;\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "KeyValueFilter",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!KeyValueRepository:interface",
          "docComment": "/**\n * Key/Value operations for connector implementations\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface KeyValueRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "Repository",
              "canonicalReference": "@loopback/repository!Repository:interface"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "KeyValueRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KeyValueRepository#delete:member(1)",
              "docComment": "/**\n * Delete an entry by key\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KeyValueRepository#deleteAll:member(1)",
              "docComment": "/**\n * Delete all entries\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteAll(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "deleteAll"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KeyValueRepository#expire:member(1)",
              "docComment": "/**\n * Set up ttl for an entry by key\n *\n * @param key - Key for the entry\n *\n * @param ttl - Ttl for the entry\n *\n * @param options - Options for the operation\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "expire(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", ttl: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "ttl",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  }
                }
              ],
              "name": "expire"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KeyValueRepository#get:member(1)",
              "docComment": "/**\n * Get an entry by key\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the entry\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "get"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KeyValueRepository#keys:member(1)",
              "docComment": "/**\n * Get an Iterator for matching keys\n *\n * @param filter - Filter for keys\n *\n * @param options - Options for the operation\n *\n * @returns An async iteratable iterator of keys so that the return value can be used with `for-await-of`.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "keys?(filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "KeyValueFilter",
                  "canonicalReference": "@loopback/repository!KeyValueFilter:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "AsyncIterable",
                  "canonicalReference": "!AsyncIterable:interface"
                },
                {
                  "kind": "Content",
                  "text": "<string>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "keys"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KeyValueRepository#set:member(1)",
              "docComment": "/**\n * Set an entry with key/value\n *\n * @param key - Key for the entry\n *\n * @param value - Value for the entry\n *\n * @param options - Options for the operation\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "set(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", value: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "set"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KeyValueRepository#ttl:member(1)",
              "docComment": "/**\n * Get ttl for an entry by key\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the TTL value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ttl?(key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<number>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "ttl"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!KVConnector:interface",
          "docComment": "/**\n * Key/Value operations for connector implementations\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface KVConnector<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "Connector",
              "canonicalReference": "@loopback/repository!Connector:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "KVConnector",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#delete:member(1)",
              "docComment": "/**\n * Delete an entry by key\n *\n * @param modelClass - Model class\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entry is deleted for the id, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "delete(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "delete"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#deleteAll:member(1)",
              "docComment": "/**\n * Delete all entries\n *\n * @param modelClass - Model class\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the number of entries deleted\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "deleteAll(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<number>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "deleteAll"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#expire:member(1)",
              "docComment": "/**\n * Set up ttl for an entry by key\n *\n * @param modelClass - Model class\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entry is configured for the key, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "expire(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", ttl: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "ttl",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ],
              "name": "expire"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#get:member(1)",
              "docComment": "/**\n * Get an entry by key\n *\n * @param modelClass - Model class\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the entry found for the key\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "get"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#iterateKeys:member(1)",
              "docComment": "/**\n * Get an Iterator for matching keys\n *\n * @param modelClass - Model class\n *\n * @param filter - Matching filter\n *\n * @param options - Options for the operation\n *\n * @returns A promise of an iterator of entries\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "iterateKeys?(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", filter?: "
                },
                {
                  "kind": "Reference",
                  "text": "Filter",
                  "canonicalReference": "@loopback/repository!Filter:interface"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Iterator",
                  "canonicalReference": "!Iterator:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "filter",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "name": "iterateKeys"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#keys:member(1)",
              "docComment": "/**\n * Fetch all keys\n *\n * @param modelClass - Model class\n *\n * @param key - Key for the entry\n *\n * @param options - Options for the operation\n *\n * @returns A promise of an array of keys for all entries\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "keys?(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<string[]>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "name": "keys"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#set:member(1)",
              "docComment": "/**\n * Set an entry with key/value\n *\n * @param modelClass - Model class\n *\n * @param key - Key for the entry\n *\n * @param value - Value for the entry\n *\n * @param options - Options for the operation\n *\n * @returns Promise<true> if an entry is set for the key, otherwise Promise<false>\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "set(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", value: "
                },
                {
                  "kind": "Reference",
                  "text": "EntityData",
                  "canonicalReference": "@loopback/repository!EntityData:type"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<boolean>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ],
              "name": "set"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!KVConnector#ttl:member(1)",
              "docComment": "/**\n * Get ttl for an entry by key\n *\n * @param modelClass - Model class\n *\n * @param key - Key for the entry\n *\n * @param ttl - Time to live in millisenconds\n *\n * @param options - Options for the operation\n *\n * @returns A promise of the TTL value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ttl?(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ", key: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", ttl: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<number>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 12,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "ttl",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 10,
                    "endIndex": 11
                  }
                }
              ],
              "name": "ttl"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!MODEL_KEY:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "MODEL_KEY: "
            },
            {
              "kind": "Reference",
              "text": "MetadataAccessor",
              "canonicalReference": "@loopback/metadata!MetadataAccessor:class"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "ModelDefinitionSyntax",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax:interface"
            },
            {
              "kind": "Content",
              "text": ">, "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator",
              "canonicalReference": "!ClassDecorator:type"
            },
            {
              "kind": "Content",
              "text": ">"
            }
          ],
          "releaseTag": "Public",
          "name": "MODEL_KEY",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 9
          }
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!MODEL_PROPERTIES_KEY:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "MODEL_PROPERTIES_KEY: "
            },
            {
              "kind": "Reference",
              "text": "MetadataAccessor",
              "canonicalReference": "@loopback/metadata!MetadataAccessor:class"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "PropertyDefinition",
              "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator",
              "canonicalReference": "!PropertyDecorator:type"
            },
            {
              "kind": "Content",
              "text": ">"
            }
          ],
          "releaseTag": "Public",
          "name": "MODEL_PROPERTIES_KEY",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 7
          }
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!MODEL_WITH_PROPERTIES_KEY:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "MODEL_WITH_PROPERTIES_KEY: "
            },
            {
              "kind": "Reference",
              "text": "MetadataAccessor",
              "canonicalReference": "@loopback/metadata!MetadataAccessor:class"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "ModelDefinition",
              "canonicalReference": "@loopback/repository!ModelDefinition:class"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator",
              "canonicalReference": "!ClassDecorator:type"
            },
            {
              "kind": "Content",
              "text": ">"
            }
          ],
          "releaseTag": "Public",
          "name": "MODEL_WITH_PROPERTIES_KEY",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 7
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!Model:class",
          "docComment": "/**\n * Base class for models\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare abstract class Model "
            }
          ],
          "releaseTag": "Public",
          "name": "Model",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!Model:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `Model` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(data?: "
                },
                {
                  "kind": "Reference",
                  "text": "DataObject",
                  "canonicalReference": "@loopback/repository!DataObject:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Model",
                  "canonicalReference": "@loopback/repository!Model:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "data",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!Model.definition:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static definition: "
                },
                {
                  "kind": "Reference",
                  "text": "ModelDefinition",
                  "canonicalReference": "@loopback/repository!ModelDefinition:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "definition",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": true
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!Model#toJSON:member(1)",
              "docComment": "/**\n * Serialize into a plain JSON object\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "toJSON(): "
                },
                {
                  "kind": "Reference",
                  "text": "Object",
                  "canonicalReference": "!Object:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "toJSON"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!Model#toObject:member(1)",
              "docComment": "/**\n * Convert to a plain object as DTO\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "toObject(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Object",
                  "canonicalReference": "!Object:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "toObject"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!model:function(1)",
          "docComment": "/**\n * Decorator for model definitions\n *\n * @param  - definition\n *\n * @returns A class decorator for `model`\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function model(definition?: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "ModelDefinitionSyntax",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(target: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": " & {\n    definition?: "
            },
            {
              "kind": "Reference",
              "text": "ModelDefinition",
              "canonicalReference": "@loopback/repository!ModelDefinition:class"
            },
            {
              "kind": "Content",
              "text": " | undefined;\n}) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 6,
            "endIndex": 11
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "name": "model"
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!ModelDefinition:class",
          "docComment": "/**\n * Definition for a model\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class ModelDefinition "
            }
          ],
          "releaseTag": "Public",
          "name": "ModelDefinition",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!ModelDefinition:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `ModelDefinition` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(nameOrDef: "
                },
                {
                  "kind": "Content",
                  "text": "string | "
                },
                {
                  "kind": "Reference",
                  "text": "ModelDefinitionSyntax",
                  "canonicalReference": "@loopback/repository!ModelDefinitionSyntax:interface"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "nameOrDef",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ]
            },
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/repository!ModelDefinition:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "[attribute: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "attribute",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ModelDefinition#addProperty:member(1)",
              "docComment": "/**\n * Add a property\n *\n * @param name - Property definition or name (string)\n *\n * @param definitionOrType - Definition or property type\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "addProperty(name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", definitionOrType: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDefinition",
                  "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyType",
                  "canonicalReference": "@loopback/repository!PropertyType:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "definitionOrType",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 6
                  }
                }
              ],
              "name": "addProperty"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ModelDefinition#addRelation:member(1)",
              "docComment": "/**\n * Define a new relation.\n *\n * @param definition - The definition of the new relation.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "addRelation(definition: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationMetadata",
                  "canonicalReference": "@loopback/repository!RelationMetadata:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "definition",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "addRelation"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ModelDefinition#addSetting:member(1)",
              "docComment": "/**\n * Add a setting\n *\n * @param name - Setting name\n *\n * @param value - Setting value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "addSetting(name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "addSetting"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ModelDefinition#idProperties:member(1)",
              "docComment": "/**\n * Get an array of names of ID properties, which are specified in the model settings or properties with `id` attribute.\n *\n * @example\n * ```ts\n * {\n *   settings: {\n *     id: ['id']\n *   }\n *   properties: {\n *     id: {\n *       type: 'string',\n *       id: true\n *     }\n *   }\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "idProperties(): "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "idProperties"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ModelDefinition#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ModelDefinition#properties:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "properties: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        [name: string]: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDefinition",
                  "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
                },
                {
                  "kind": "Content",
                  "text": ";\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "properties",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ModelDefinition#relations:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "relations: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationDefinitionMap",
                  "canonicalReference": "@loopback/repository!RelationDefinitionMap:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "relations",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ModelDefinition#settings:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "settings: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        [name: string]: any;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "settings",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!ModelDefinitionSyntax:interface",
          "docComment": "/**\n * DSL for building a model definition.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ModelDefinitionSyntax "
            }
          ],
          "releaseTag": "Public",
          "name": "ModelDefinitionSyntax",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "[attribute: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "attribute",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax#properties:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "properties?: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        [name: string]: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDefinition",
                  "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyType",
                  "canonicalReference": "@loopback/repository!PropertyType:type"
                },
                {
                  "kind": "Content",
                  "text": ";\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "properties",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 6
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax#relations:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "relations?: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationDefinitionMap",
                  "canonicalReference": "@loopback/repository!RelationDefinitionMap:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "relations",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!ModelDefinitionSyntax#settings:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "settings?: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        [name: string]: any;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "settings",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!ModelMetadataHelper:class",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class ModelMetadataHelper "
            }
          ],
          "releaseTag": "Public",
          "name": "ModelMetadataHelper",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ModelMetadataHelper.getModelMetadata:member(1)",
              "docComment": "/**\n * A utility function to simplify retrieving metadata from a target model and its properties.\n *\n * @param target - The class from which to retrieve metadata.\n *\n * @param options - An options object for the MetadataInspector to customize the output of the metadata retrieval functions.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "static getModelMetadata(target: "
                },
                {
                  "kind": "Reference",
                  "text": "Function",
                  "canonicalReference": "!Function:interface"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "InspectionOptions",
                  "canonicalReference": "@loopback/metadata!InspectionOptions:interface"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "ModelDefinition",
                  "canonicalReference": "@loopback/repository!ModelDefinition:class"
                },
                {
                  "kind": "Content",
                  "text": " | {}"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": true,
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "target",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "getModelMetadata"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!ModelType:class",
          "docComment": "/**\n * Model type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class ModelType<T extends "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "ObjectType",
              "canonicalReference": "@loopback/repository!ObjectType:class"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ModelType",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!ModelType:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `ModelType` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ModelType#modelClass:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "modelClass: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "modelClass",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ModelType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ModelType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "T | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Object",
                  "canonicalReference": "!Object:interface"
                },
                {
                  "kind": "Content",
                  "text": " | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "extendsTokenRange": {
            "startIndex": 3,
            "endIndex": 5
          },
          "implementsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!NamedParameters:type",
          "docComment": "/**\n * Named parameters, such as `{x: 1, y: 'a'}`\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type NamedParameters = "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "NamedParameters",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!normalizeKey:function(1)",
          "docComment": "/**\n * Workaround for MongoDB, where the connector returns ObjectID values even for properties configured with \"type: string\".\n *\n * @param  - rawKey\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function normalizeKey(rawKey: "
            },
            {
              "kind": "Content",
              "text": "unknown"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "unknown"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "rawKey",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "normalizeKey"
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!NUMBER:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "NUMBER: "
            },
            {
              "kind": "Reference",
              "text": "NumberType",
              "canonicalReference": "@loopback/repository!NumberType:class"
            }
          ],
          "releaseTag": "Public",
          "name": "NUMBER",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!NumberType:class",
          "docComment": "/**\n * Number type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class NumberType implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<number> "
            }
          ],
          "releaseTag": "Public",
          "name": "NumberType",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!NumberType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!NumberType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!NumberType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!NumberType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!NumberType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"number\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!NumberType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "number | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "number | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!ObjectType:class",
          "docComment": "/**\n * Object type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class ObjectType<T extends "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ObjectType",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!ObjectType:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `ObjectType` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(type: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "type",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ObjectType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ObjectType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "T"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ObjectType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ObjectType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ObjectType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!ObjectType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "T | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!ObjectType#type:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Operators:type",
          "docComment": "/**\n * Operators for where clauses\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Operators = "
            },
            {
              "kind": "Content",
              "text": "'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'inq' | 'nin' | 'between' | 'exists' | 'and' | 'or' | 'like' | 'nlike' | 'ilike' | 'nilike' | 'regexp'"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Operators",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Options:type",
          "docComment": "/**\n * Type alias for Node.js options object\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Options = "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Options",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!OrClause:interface",
          "docComment": "/**\n * Or clause\n *\n * @example\n * ```ts\n * {\n *   or: [...],\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface OrClause<MT extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "OrClause",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!OrClause#or:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "or: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "or",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Order:type",
          "docComment": "/**\n * Order by\n *\n * Example: `{afieldname: 'ASC'}`\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Order<MT = "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Content",
              "text": "{\n    [P in keyof MT]: "
            },
            {
              "kind": "Reference",
              "text": "Direction",
              "canonicalReference": "@loopback/repository!Direction:type"
            },
            {
              "kind": "Content",
              "text": ";\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Order",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 3,
            "endIndex": 6
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Persistable:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Persistable "
            }
          ],
          "releaseTag": "Public",
          "name": "Persistable",
          "members": [],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!PositionalParameters:type",
          "docComment": "/**\n * Positional parameters, such as [1, 'a']\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type PositionalParameters = "
            },
            {
              "kind": "Content",
              "text": "any[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "PositionalParameters",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!PredicateComparison:type",
          "docComment": "/**\n * Matching predicate comparison\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type PredicateComparison<PT> = "
            },
            {
              "kind": "Content",
              "text": "{\n    eq?: PT;\n    neq?: PT;\n    gt?: PT;\n    gte?: PT;\n    lt?: PT;\n    lte?: PT;\n    inq?: PT[];\n    nin?: PT[];\n    between?: [PT, PT];\n    exists?: boolean;\n    like?: PT;\n    nlike?: PT;\n    ilike?: PT;\n    nilike?: PT;\n    regexp?: string | "
            },
            {
              "kind": "Reference",
              "text": "RegExp",
              "canonicalReference": "!RegExp:interface"
            },
            {
              "kind": "Content",
              "text": ";\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "PredicateComparison",
          "typeParameters": [
            {
              "typeParameterName": "PT",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!property:function(1)",
          "docComment": "/**\n * Decorator for model properties\n *\n * @param  - definition\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function property(definition?: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "PropertyDefinition",
              "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator",
              "canonicalReference": "!PropertyDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 6,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "name": "property"
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@loopback/repository!property:namespace",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace property "
            }
          ],
          "releaseTag": "Public",
          "name": "property",
          "members": [
            {
              "kind": "Function",
              "canonicalReference": "@loopback/repository!property.array:function(1)",
              "docComment": "/**\n * @param itemType - The type of array items. Examples: `number`, `Product`, `() => Order`.\n *\n * @param definition - Optional PropertyDefinition object for additional metadata\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "function array(itemType: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyType",
                  "canonicalReference": "@loopback/repository!PropertyType:type"
                },
                {
                  "kind": "Content",
                  "text": ", definition?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "PropertyDefinition",
                  "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "(target: object, propertyName: string) => void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "itemType",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "definition",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 7
                  }
                }
              ],
              "name": "array"
            },
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/repository!property.ERR_NO_ARGS:var",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ERR_NO_ARGS = \"decorator received less than two parameters\""
                }
              ],
              "releaseTag": "Public",
              "name": "ERR_NO_ARGS",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/repository!property.ERR_PROP_NOT_ARRAY:var",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "ERR_PROP_NOT_ARRAY = \"@property.array can only decorate array properties!\""
                }
              ],
              "releaseTag": "Public",
              "name": "ERR_PROP_NOT_ARRAY",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!PropertyDefinition:interface",
          "docComment": "/**\n * Property definition for a model\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface PropertyDefinition "
            }
          ],
          "releaseTag": "Public",
          "name": "PropertyDefinition",
          "members": [
            {
              "kind": "IndexSignature",
              "canonicalReference": "@loopback/repository!PropertyDefinition:index(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "[attribute: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "]: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "attribute",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyDefinition#id:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "id?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean | number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "id",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyDefinition#itemType:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "itemType?: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyType",
                  "canonicalReference": "@loopback/repository!PropertyType:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "itemType",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyDefinition#json:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "json?: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyForm",
                  "canonicalReference": "@loopback/repository!PropertyForm:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "json",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyDefinition#jsonSchema:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "jsonSchema?: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        [attribute: string]: any;\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "jsonSchema",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyDefinition#store:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "store?: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyForm",
                  "canonicalReference": "@loopback/repository!PropertyForm:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "store",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyDefinition#type:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type: "
                },
                {
                  "kind": "Reference",
                  "text": "PropertyType",
                  "canonicalReference": "@loopback/repository!PropertyType:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!PropertyForm:interface",
          "docComment": "/**\n * See https://github.com/strongloop/loopback-datasource-juggler/issues/432\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface PropertyForm "
            }
          ],
          "releaseTag": "Public",
          "name": "PropertyForm",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyForm#in:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "in?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "in",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyForm#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!PropertyForm#out:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "out?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "out",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!PropertyMap:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type PropertyMap = "
            },
            {
              "kind": "Reference",
              "text": "MetadataMap",
              "canonicalReference": "@loopback/metadata!MetadataMap:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "PropertyDefinition",
              "canonicalReference": "@loopback/repository!PropertyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "PropertyMap",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!PropertyType:type",
          "docComment": "/**\n * This module defines the key classes representing building blocks for Domain Driven Design. See https://en.wikipedia.org/wiki/Domain-driven_design#Building_blocks\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type PropertyType = "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": " | object | "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<any> | "
            },
            {
              "kind": "Reference",
              "text": "TypeResolver",
              "canonicalReference": "@loopback/repository!TypeResolver:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "PropertyType",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 10
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!reduceAsArray:function(1)",
          "docComment": "/**\n * Returns an array of instances. For HasMany relation usage.\n *\n * @param  - acc\n *\n * @param  - it\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function reduceAsArray<T>(acc: "
            },
            {
              "kind": "Content",
              "text": "T[] | undefined"
            },
            {
              "kind": "Content",
              "text": ", it: "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "T[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "acc",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "it",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "reduceAsArray"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!reduceAsSingleItem:function(1)",
          "docComment": "/**\n * Returns a single of an instance. For HasOne and BelongsTo relation usage.\n *\n * @param  - _acc\n *\n * @param  - it\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function reduceAsSingleItem<T>(_acc: "
            },
            {
              "kind": "Content",
              "text": "T | undefined"
            },
            {
              "kind": "Content",
              "text": ", it: "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "_acc",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "it",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "reduceAsSingleItem"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!referencesMany:function(1)",
          "docComment": "/**\n * Decorator for referencesMany\n *\n * @param  - definition\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function referencesMany(definition?: "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator",
              "canonicalReference": "!PropertyDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "referencesMany"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!referencesOne:function(1)",
          "docComment": "/**\n * Decorator for referencesOne\n *\n * @param  - definition\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function referencesOne(definition?: "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator",
              "canonicalReference": "!PropertyDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "referencesOne"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!relation:function(1)",
          "docComment": "/**\n * Decorator for relations\n *\n * @param  - definition\n *\n * @returns A property decorator\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function relation(definition?: "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "PropertyDecorator",
              "canonicalReference": "!PropertyDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "definition",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "relation"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!RelationDefinitionBase:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface RelationDefinitionBase "
            }
          ],
          "releaseTag": "Public",
          "name": "RelationDefinitionBase",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase#name:member",
              "docComment": "/**\n * The relation name, typically matching the name of the accessor property defined on the source model. For example \"orders\" or \"customer\".\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase#source:member",
              "docComment": "/**\n * The source model of this relation.\n *\n * E.g. when a Customer has many Order instances, then Customer is the source.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "source: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "source",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase#target:member",
              "docComment": "/**\n * The target model of this relation.\n *\n * E.g. when a Customer has many Order instances, then Order is the target.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "target: "
                },
                {
                  "kind": "Reference",
                  "text": "TypeResolver",
                  "canonicalReference": "@loopback/repository!TypeResolver:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "target",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 7
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase#targetsMany:member",
              "docComment": "/**\n * True for relations targeting multiple instances (e.g. HasMany), false for relations with a single target (e.g. BelongsTo, HasOne). This property is needed by OpenAPI/JSON Schema generator.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "targetsMany?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "targetsMany",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase#type:member",
              "docComment": "/**\n * The type of the relation, must be one of RelationType values.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type: "
                },
                {
                  "kind": "Reference",
                  "text": "RelationType",
                  "canonicalReference": "@loopback/repository!RelationType:enum"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "type",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!RelationDefinitionMap:type",
          "docComment": "/**\n * A key-value map describing model relations. A relation name is used as the key, a relation definition is the value.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type RelationDefinitionMap = "
            },
            {
              "kind": "Content",
              "text": "{\n    [relationName: string]: "
            },
            {
              "kind": "Reference",
              "text": "RelationMetadata",
              "canonicalReference": "@loopback/repository!RelationMetadata:type"
            },
            {
              "kind": "Content",
              "text": ";\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "RelationDefinitionMap",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 4
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!RelationMetadata:type",
          "docComment": "/**\n * A union type describing all possible Relation metadata objects.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type RelationMetadata = "
            },
            {
              "kind": "Reference",
              "text": "HasManyDefinition",
              "canonicalReference": "@loopback/repository!HasManyDefinition:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "BelongsToDefinition",
              "canonicalReference": "@loopback/repository!BelongsToDefinition:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "HasOneDefinition",
              "canonicalReference": "@loopback/repository!HasOneDefinition:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "RelationDefinitionBase",
              "canonicalReference": "@loopback/repository!RelationDefinitionBase:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "RelationMetadata",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 8
          }
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!RELATIONS_KEY:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "RELATIONS_KEY = \"loopback:relations\""
            }
          ],
          "releaseTag": "Public",
          "name": "RELATIONS_KEY",
          "variableTypeTokenRange": {
            "startIndex": 0,
            "endIndex": 0
          }
        },
        {
          "kind": "Enum",
          "canonicalReference": "@loopback/repository!RelationType:enum",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare enum RelationType "
            }
          ],
          "releaseTag": "Public",
          "name": "RelationType",
          "members": [
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!RelationType.belongsTo:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "belongsTo = "
                },
                {
                  "kind": "Content",
                  "text": "\"belongsTo\""
                }
              ],
              "releaseTag": "Public",
              "name": "belongsTo",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!RelationType.embedsMany:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "embedsMany = "
                },
                {
                  "kind": "Content",
                  "text": "\"embedsMany\""
                }
              ],
              "releaseTag": "Public",
              "name": "embedsMany",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!RelationType.embedsOne:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "embedsOne = "
                },
                {
                  "kind": "Content",
                  "text": "\"embedsOne\""
                }
              ],
              "releaseTag": "Public",
              "name": "embedsOne",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!RelationType.hasMany:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "hasMany = "
                },
                {
                  "kind": "Content",
                  "text": "\"hasMany\""
                }
              ],
              "releaseTag": "Public",
              "name": "hasMany",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!RelationType.hasOne:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "hasOne = "
                },
                {
                  "kind": "Content",
                  "text": "\"hasOne\""
                }
              ],
              "releaseTag": "Public",
              "name": "hasOne",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!RelationType.referencesMany:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "referencesMany = "
                },
                {
                  "kind": "Content",
                  "text": "\"referencesMany\""
                }
              ],
              "releaseTag": "Public",
              "name": "referencesMany",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "EnumMember",
              "canonicalReference": "@loopback/repository!RelationType.referencesOne:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "referencesOne = "
                },
                {
                  "kind": "Content",
                  "text": "\"referencesOne\""
                }
              ],
              "releaseTag": "Public",
              "name": "referencesOne",
              "initializerTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!repository:function(1)",
          "docComment": "/**\n * Decorator for repository injections on properties or method arguments\n *\n * @param repositoryName - Name of the repo\n *\n * @example\n * ```ts\n * class CustomerController {\n *   @repository(CustomerRepository) public custRepo: CustomerRepository;\n *\n *   constructor(\n *     @repository(ProductRepository) public prodRepo: ProductRepository,\n *   ) {}\n *   // ...\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function repository(repositoryName: "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Repository",
              "canonicalReference": "@loopback/repository!Repository:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": ">>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "RepositoryDecorator",
              "canonicalReference": "@loopback/repository!RepositoryDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "repositoryName",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 8
              }
            }
          ],
          "name": "repository"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!repository:function(2)",
          "docComment": "/**\n * Decorator for DefaultCrudRepository generation and injection on properties or method arguments based on the given model and dataSource (or their names)\n *\n * @param model - Name/class of the model\n *\n * @param dataSource - Name/instance of the dataSource\n *\n * @example\n * ```ts\n * class CustomerController {\n *   @repository('Customer', 'mySqlDataSource')\n *   public custRepo: DefaultCrudRepository<\n *     Customer,\n *     typeof Customer.prototype.id\n *   >;\n *\n *   constructor(\n *     @repository(Product, mySqlDataSource)\n *     public prodRepo: DefaultCrudRepository<\n *       Product,\n *       typeof Product.prototype.id\n *     >,\n *   ) {}\n *   // ...\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function repository(model: "
            },
            {
              "kind": "Content",
              "text": "string | typeof "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", dataSource: "
            },
            {
              "kind": "Content",
              "text": "string | "
            },
            {
              "kind": "Reference",
              "text": "juggler.DataSource",
              "canonicalReference": "loopback-datasource-juggler!DataSource:class"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "RepositoryDecorator",
              "canonicalReference": "@loopback/repository!RepositoryDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 8
          },
          "releaseTag": "Public",
          "overloadIndex": 2,
          "parameters": [
            {
              "parameterName": "model",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            },
            {
              "parameterName": "dataSource",
              "parameterTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 6
              }
            }
          ],
          "name": "repository"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Repository:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Repository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "Repository",
          "members": [],
          "extendsTokenRanges": []
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@loopback/repository!repository:namespace",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace repository "
            }
          ],
          "releaseTag": "Public",
          "name": "repository",
          "members": [
            {
              "kind": "Function",
              "canonicalReference": "@loopback/repository!repository.getter:function(1)",
              "docComment": "/**\n * Decorator used to inject a Getter for a repository Mainly intended for usage with repository injections on relation repository factory\n *\n * @param nameOrClass - The repository class (ProductRepository) or a string name ('ProductRepository').\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "function getter(nameOrClass: "
                },
                {
                  "kind": "Content",
                  "text": "string | "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Repository",
                  "canonicalReference": "@loopback/repository!Repository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Model",
                  "canonicalReference": "@loopback/repository!Model:class"
                },
                {
                  "kind": "Content",
                  "text": ">>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "(target: "
                },
                {
                  "kind": "Reference",
                  "text": "Object",
                  "canonicalReference": "!Object:interface"
                },
                {
                  "kind": "Content",
                  "text": ", member: string | undefined, methodDescriptorOrParameterIndex?: number | "
                },
                {
                  "kind": "Reference",
                  "text": "TypedPropertyDescriptor",
                  "canonicalReference": "!TypedPropertyDescriptor:interface"
                },
                {
                  "kind": "Content",
                  "text": "<any> | undefined) => void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 14
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "nameOrClass",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 8
                  }
                }
              ],
              "name": "getter"
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!RepositoryDecorator:type",
          "docComment": "/**\n * Type definition for decorators returned by `@repository` decorator factory\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type RepositoryDecorator = "
            },
            {
              "kind": "Content",
              "text": "(target: "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": ", key?: string, descriptorOrIndex?: "
            },
            {
              "kind": "Reference",
              "text": "TypedPropertyDescriptor",
              "canonicalReference": "!TypedPropertyDescriptor:interface"
            },
            {
              "kind": "Content",
              "text": "<any> | number) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "RepositoryDecorator",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 6
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!RepositoryMetadata:class",
          "docComment": "/**\n * Metadata for a repository\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class RepositoryMetadata "
            }
          ],
          "releaseTag": "Public",
          "name": "RepositoryMetadata",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!RepositoryMetadata:constructor(1)",
              "docComment": "/**\n * Constructor for RepositoryMetadata\n *\n * @param modelOrRepo - Name or class of the model. If the value is a string and `dataSource` is not present, it will treated as the name of a predefined repository\n *\n * @param dataSource - Name or instance of the data source\n *\n * For example:\n *\n * - new RepositoryMetadata(repoName); - new RepositoryMetadata(modelName, dataSourceName); - new RepositoryMetadata(modelClass, dataSourceInstance); - new RepositoryMetadata(modelName, dataSourceInstance); - new RepositoryMetadata(modelClass, dataSourceName);\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(modelOrRepo: "
                },
                {
                  "kind": "Content",
                  "text": "string | typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ", dataSource?: "
                },
                {
                  "kind": "Content",
                  "text": "string | "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "DataSource",
                  "canonicalReference": "@loopback/repository!DataSource:interface"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelOrRepo",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "dataSource",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 8
                  }
                }
              ]
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!RepositoryMetadata#dataSource:member",
              "docComment": "/**\n * Instance of the data source\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "dataSource?: "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "DataSource",
                  "canonicalReference": "@loopback/repository!DataSource:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "dataSource",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!RepositoryMetadata#dataSourceName:member",
              "docComment": "/**\n * Name of the data source\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "dataSourceName?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "dataSourceName",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!RepositoryMetadata#modelClass:member",
              "docComment": "/**\n * Class of the model\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "modelClass?: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Entity",
                  "canonicalReference": "@loopback/repository!Entity:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "modelClass",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!RepositoryMetadata#modelName:member",
              "docComment": "/**\n * Name of the model\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "modelName?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "modelName",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!RepositoryMetadata#name:member",
              "docComment": "/**\n * Name of the predefined repository\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!RepositoryMixin:function(1)",
          "docComment": "/**\n * A mixin class for Application that creates a .repository() function to register a repository automatically. Also overrides component function to allow it to register repositories automatically.\n *\n * @example\n * ```ts\n * class MyApplication extends RepositoryMixin(Application) {}\n * ```\n *\n * Please note: the members in the mixin function are documented in a dummy class called <a href=\"#RepositoryMixinDoc\">RepositoryMixinDoc</a>\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function RepositoryMixin<T extends "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<any>"
            },
            {
              "kind": "Content",
              "text": ">(superClass: "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "{\n    new (...args: any[]): {\n        [x: string]: any;\n        repository<R extends "
            },
            {
              "kind": "Reference",
              "text": "Repository",
              "canonicalReference": "@loopback/repository!Repository:interface"
            },
            {
              "kind": "Content",
              "text": "<any>>(repoClass: "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<R>, name?: string | undefined): "
            },
            {
              "kind": "Reference",
              "text": "Binding",
              "canonicalReference": "@loopback/context!Binding:class"
            },
            {
              "kind": "Content",
              "text": "<R>;\n        getRepository<R_1 extends "
            },
            {
              "kind": "Reference",
              "text": "Repository",
              "canonicalReference": "@loopback/repository!Repository:interface"
            },
            {
              "kind": "Content",
              "text": "<any>>(repo: "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<R_1>): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<R_1>;\n        dataSource<D extends "
            },
            {
              "kind": "Reference",
              "text": "juggler.DataSource",
              "canonicalReference": "loopback-datasource-juggler!DataSource:class"
            },
            {
              "kind": "Content",
              "text": ">(dataSource: D | "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<D>, name?: string | undefined): "
            },
            {
              "kind": "Reference",
              "text": "Binding",
              "canonicalReference": "@loopback/context!Binding:class"
            },
            {
              "kind": "Content",
              "text": "<D>;\n        component(component: "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<unknown>, name?: string | undefined): void;\n        mountComponentRepositories(component: "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<unknown>): void;\n        migrateSchema(options?: "
            },
            {
              "kind": "Reference",
              "text": "SchemaMigrationOptions",
              "canonicalReference": "@loopback/repository!SchemaMigrationOptions:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<void>;\n    };\n} & T"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 6,
            "endIndex": 33
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "superClass",
              "parameterTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "RepositoryMixin"
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!RepositoryMixinDoc:class",
          "docComment": "/**\n * A dummy class created to generate the tsdoc for the members in repository mixin. Please don't use it.\n *\n * The members are implemented in function <a href=\"#RepositoryMixin\">RepositoryMixin</a>\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class RepositoryMixinDoc "
            }
          ],
          "releaseTag": "Public",
          "name": "RepositoryMixinDoc",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!RepositoryMixinDoc:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `RepositoryMixinDoc` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(...args: "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!RepositoryMixinDoc#component:member(1)",
              "docComment": "/**\n * Add a component to this application. Also mounts all the components repositories.\n *\n * @param component - The component to add.\n *\n * @example\n * ```ts\n *\n * export class ProductComponent {\n *   controllers = [ProductController];\n *   repositories = [ProductRepo, UserRepo];\n *   providers = {\n *     [AUTHENTICATION_STRATEGY]: AuthStrategy,\n *     [AUTHORIZATION_ROLE]: Role,\n *   };\n * };\n *\n * app.component(ProductComponent);\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "component(component: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<{}>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding",
                  "canonicalReference": "@loopback/context!Binding:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "component"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!RepositoryMixinDoc#dataSource:member(1)",
              "docComment": "/**\n * Add the dataSource to this application.\n *\n * @param dataSource - The dataSource to add.\n *\n * @param name - The binding name of the datasource; defaults to dataSource.name\n *\n * @example\n * ```ts\n *\n * const ds: juggler.DataSource = new juggler.DataSource({\n *   name: 'db',\n *   connector: 'memory',\n * });\n *\n * app.dataSource(ds);\n *\n * // The datasource can be injected with\n * constructor(@inject('datasources.db') dataSource: DataSourceType) {\n *\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "dataSource(dataSource: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": "> | "
                },
                {
                  "kind": "Reference",
                  "text": "juggler.DataSource",
                  "canonicalReference": "loopback-datasource-juggler!DataSource:class"
                },
                {
                  "kind": "Content",
                  "text": ", name?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding",
                  "canonicalReference": "@loopback/context!Binding:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 9,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "dataSource",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 6
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 7,
                    "endIndex": 8
                  }
                }
              ],
              "name": "dataSource"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!RepositoryMixinDoc#getRepository:member(1)",
              "docComment": "/**\n * Retrieve the repository instance from the given Repository class\n *\n * @param repo - The repository class to retrieve the instance of\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getRepository<R extends "
                },
                {
                  "kind": "Reference",
                  "text": "Repository",
                  "canonicalReference": "@loopback/repository!Repository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<any>"
                },
                {
                  "kind": "Content",
                  "text": ">(repo: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<R>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<R>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "repo",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 6
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "R",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "getRepository"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!RepositoryMixinDoc#migrateSchema:member(1)",
              "docComment": "/**\n * Update or recreate the database schema for all repositories.\n *\n * **WARNING**: By default, `migrateSchema()` will attempt to preserve data while updating the schema in your target database, but this is not guaranteed to be safe.\n *\n * Please check the documentation for your specific connector(s) for a detailed breakdown of behaviors for automigrate!\n *\n * @param options - Migration options, e.g. whether to update tables preserving data or rebuild everything from scratch.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "migrateSchema(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "SchemaMigrationOptions",
                  "canonicalReference": "@loopback/repository!SchemaMigrationOptions:interface"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "migrateSchema"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!RepositoryMixinDoc#mountComponentRepository:member(1)",
              "docComment": "/**\n * Get an instance of a component and mount all it's repositories. This function is intended to be used internally by component()\n *\n * @param component - The component to mount repositories of\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "mountComponentRepository(component: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<{}>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "component",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "mountComponentRepository"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!RepositoryMixinDoc#repository:member(1)",
              "docComment": "/**\n * Add a repository to this application.\n *\n * @param repo - The repository to add.\n *\n * @example\n * ```ts\n *\n * class NoteRepo {\n *   model: any;\n *\n *   constructor() {\n *     const ds: juggler.DataSource = new juggler.DataSource({\n *       name: 'db',\n *       connector: 'memory',\n *     });\n *\n *     this.model = ds.createModel(\n *       'note',\n *       {title: 'string', content: 'string'},\n *       {}\n *     );\n *   }\n * };\n *\n * app.repository(NoteRepo);\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "repository(repo: "
                },
                {
                  "kind": "Reference",
                  "text": "Class",
                  "canonicalReference": "@loopback/repository!Class:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Repository",
                  "canonicalReference": "@loopback/repository!Repository:interface"
                },
                {
                  "kind": "Content",
                  "text": "<any>>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Binding",
                  "canonicalReference": "@loopback/context!Binding:class"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "repo",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                }
              ],
              "name": "repository"
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!resolveType:function(1)",
          "docComment": "/**\n * Resolve a type value that may have been provided via TypeResolver.\n *\n * @param fn - A type class or a type provider.\n *\n * @returns The resolved type.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function resolveType<T extends "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": ">(fn: "
            },
            {
              "kind": "Reference",
              "text": "TypeResolver",
              "canonicalReference": "@loopback/repository!TypeResolver:type"
            },
            {
              "kind": "Content",
              "text": "<T> | "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 8,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "fn",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "resolveType"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/repository!resolveType:function(2)",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function resolveType<T>(fn: "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "T"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 2,
          "parameters": [
            {
              "parameterName": "fn",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "resolveType"
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!SchemaMigrationOptions:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface SchemaMigrationOptions extends "
            },
            {
              "kind": "Reference",
              "text": "Options",
              "canonicalReference": "@loopback/repository!Options:type"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "SchemaMigrationOptions",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!SchemaMigrationOptions#existingSchema:member",
              "docComment": "/**\n * When set to 'drop', schema migration will drop existing tables and recreate them from scratch, removing any existing data along the way.\n *\n * When set to 'alter', schema migration will try to preserve current schema and data, and perform a non-destructive incremental update.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "existingSchema?: "
                },
                {
                  "kind": "Content",
                  "text": "'drop' | 'alter'"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "existingSchema",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!SchemaMigrationOptions#models:member",
              "docComment": "/**\n * List of model names to migrate.\n *\n * By default, all models are migrated.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "models?: "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "models",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!ShortHandEqualType:type",
          "docComment": "/**\n * Value types for `{propertyName: value}`\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type ShortHandEqualType = "
            },
            {
              "kind": "Content",
              "text": "string | number | boolean | "
            },
            {
              "kind": "Reference",
              "text": "Date",
              "canonicalReference": "!Date:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ShortHandEqualType",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 3
          }
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/repository!STRING:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "STRING: "
            },
            {
              "kind": "Reference",
              "text": "StringType",
              "canonicalReference": "@loopback/repository!StringType:class"
            }
          ],
          "releaseTag": "Public",
          "name": "STRING",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!StringKeyOf:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type StringKeyOf<T> = "
            },
            {
              "kind": "Reference",
              "text": "Extract",
              "canonicalReference": "!Extract:type"
            },
            {
              "kind": "Content",
              "text": "<keyof T, string>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "StringKeyOf",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 3
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!StringType:class",
          "docComment": "/**\n * String type\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class StringType implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<string> "
            }
          ],
          "releaseTag": "Public",
          "name": "StringType",
          "members": [
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!StringType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!StringType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!StringType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!StringType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!StringType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"string\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!StringType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "string | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "string | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Transaction:interface",
          "docComment": "/**\n * Local transaction\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Transaction "
            }
          ],
          "releaseTag": "Public",
          "name": "Transaction",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Transaction#commit:member(1)",
              "docComment": "/**\n * Commit the transaction\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "commit(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "commit"
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Transaction#id:member",
              "docComment": "/**\n * The transaction Identifier\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "id: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "id",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Transaction#rollback:member(1)",
              "docComment": "/**\n * Rollback the transaction\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "rollback(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "rollback"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!TransactionalEntityRepository:type",
          "docComment": "/**\n * A type for CRUD repositories that are backed by IDs and support Transactions\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type TransactionalEntityRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": ", ID, Relations extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Reference",
              "text": "TransactionalRepository",
              "canonicalReference": "@loopback/repository!TransactionalRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T> & "
            },
            {
              "kind": "Reference",
              "text": "EntityCrudRepository",
              "canonicalReference": "@loopback/repository!EntityCrudRepository:interface"
            },
            {
              "kind": "Content",
              "text": "<T, ID>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "TransactionalEntityRepository",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "ID",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "Relations",
              "constraintTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 7,
            "endIndex": 11
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!TransactionalRepository:interface",
          "docComment": "/**\n * Repository Interface for Repositories that support Transactions\n *\n * @typeParam  - T Generic type for the Entity\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface TransactionalRepository<T extends "
            },
            {
              "kind": "Reference",
              "text": "Entity",
              "canonicalReference": "@loopback/repository!Entity:class"
            },
            {
              "kind": "Content",
              "text": "> extends "
            },
            {
              "kind": "Reference",
              "text": "Repository",
              "canonicalReference": "@loopback/repository!Repository:interface"
            },
            {
              "kind": "Content",
              "text": "<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "TransactionalRepository",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!TransactionalRepository#beginTransaction:member(1)",
              "docComment": "/**\n * Begin a new Transaction\n *\n * @param options - Options for the operations\n *\n * @returns Promise<Transaction> Promise that resolves to a new Transaction object\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "beginTransaction(options?: "
                },
                {
                  "kind": "Reference",
                  "text": "IsolationLevel",
                  "canonicalReference": "@loopback/repository!IsolationLevel:enum"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "Transaction",
                  "canonicalReference": "@loopback/repository!Transaction:interface"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  }
                }
              ],
              "name": "beginTransaction"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 3,
              "endIndex": 5
            }
          ]
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/repository!Type:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface Type<T> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "Type",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Type#coerce:member(1)",
              "docComment": "/**\n * Coerce the value into this type\n *\n * @param value - The value to be coerced\n *\n * @param options - Options for coercion\n *\n * @returns Coerced value of this type\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "T | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Type#defaultValue:member(1)",
              "docComment": "/**\n * Generate the default value for this type\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "T | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Type#isCoercible:member(1)",
              "docComment": "/**\n * Check if the given value can be coerced into this type\n *\n * @param value - The value to to be coerced\n *\n * @returns A flag to indicate if the value can be coerced\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Type#isInstance:member(1)",
              "docComment": "/**\n * Test if the given value is an instance of this type\n *\n * @param value - The value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/repository!Type#name:member",
              "docComment": "/**\n * Name of the type\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/repository!Type#serialize:member(1)",
              "docComment": "/**\n * Serialize a value into json\n *\n * @param value - The value of this type\n *\n * @param options - Options for serialization\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "T | null | undefined"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Reference",
                  "text": "Options",
                  "canonicalReference": "@loopback/repository!Options:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!TypeResolver:type",
          "docComment": "/**\n * A type resolver is a function that returns a class representing the type, typically a Model or Entity (e.g. Product).\n *\n * We use type resolvers to break require() loops when defining relations. The target model (class) is provided via a provider, thus deferring the actual reference to the class itself until later, when both sides of the relation are created as JavaScript classes.\n *\n * @typeParam Type - The type we are resolving, for example `Entity` or `Product`. This parameter is required.\n *\n * @typeParam StaticMembers - The static properties available on the type class. For example, all models have static `modelName` property. When `StaticMembers` are not provided, we default to static properties of a `Function` - `name`, `length`, `apply`, `call`, etc. Please note the value returned by the resolver is described as having arbitrary additional static properties (see how Class is defined).\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type TypeResolver<Type extends "
            },
            {
              "kind": "Reference",
              "text": "Object",
              "canonicalReference": "!Object:interface"
            },
            {
              "kind": "Content",
              "text": ", StaticMembers = "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Content",
              "text": "() => "
            },
            {
              "kind": "Reference",
              "text": "Class",
              "canonicalReference": "@loopback/repository!Class:interface"
            },
            {
              "kind": "Content",
              "text": "<Type> & StaticMembers"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "TypeResolver",
          "typeParameters": [
            {
              "typeParameterName": "Type",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "typeParameterName": "StaticMembers",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 5,
            "endIndex": 8
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!UnionType:class",
          "docComment": "/**\n * Union type, such as string | number\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class UnionType implements "
            },
            {
              "kind": "Reference",
              "text": "Type",
              "canonicalReference": "@loopback/repository!Type:interface"
            },
            {
              "kind": "Content",
              "text": "<any> "
            }
          ],
          "releaseTag": "Public",
          "name": "UnionType",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!UnionType:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `UnionType` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(itemTypes: "
                },
                {
                  "kind": "Reference",
                  "text": "Type",
                  "canonicalReference": "@loopback/repository!Type:interface"
                },
                {
                  "kind": "Content",
                  "text": "<any>[]"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "itemTypes",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!UnionType#coerce:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "coerce(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "coerce"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!UnionType#defaultValue:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "defaultValue(): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "defaultValue"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!UnionType#isCoercible:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isCoercible(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isCoercible"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!UnionType#isInstance:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "isInstance(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "isInstance"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!UnionType#itemTypes:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "itemTypes: "
                },
                {
                  "kind": "Reference",
                  "text": "Type",
                  "canonicalReference": "@loopback/repository!Type:interface"
                },
                {
                  "kind": "Content",
                  "text": "<any>[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "itemTypes",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!UnionType#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly name = \"union\";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "isStatic": false
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!UnionType#serialize:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "serialize(value: "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "value",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "serialize"
            }
          ],
          "implementsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 3
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!ValueObject:class",
          "docComment": "/**\n * Base class for value objects - An object that contains attributes but has no conceptual identity. They should be treated as immutable.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare abstract class ValueObject extends "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": " "
            },
            {
              "kind": "Content",
              "text": "implements "
            },
            {
              "kind": "Reference",
              "text": "Persistable",
              "canonicalReference": "@loopback/repository!Persistable:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "releaseTag": "Public",
          "name": "ValueObject",
          "members": [],
          "extendsTokenRange": {
            "startIndex": 1,
            "endIndex": 3
          },
          "implementsTokenRanges": [
            {
              "startIndex": 4,
              "endIndex": 6
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/repository!Where:type",
          "docComment": "/**\n * Where clause\n *\n * @example\n * ```ts\n * {\n *   name: {inq: ['John', 'Mary']},\n *   status: 'ACTIVE'\n *   and: [...],\n *   or: [...],\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type Where<MT extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Reference",
              "text": "Condition",
              "canonicalReference": "@loopback/repository!Condition:type"
            },
            {
              "kind": "Content",
              "text": "<MT> | "
            },
            {
              "kind": "Reference",
              "text": "AndClause",
              "canonicalReference": "@loopback/repository!AndClause:interface"
            },
            {
              "kind": "Content",
              "text": "<MT> | "
            },
            {
              "kind": "Reference",
              "text": "OrClause",
              "canonicalReference": "@loopback/repository!OrClause:interface"
            },
            {
              "kind": "Content",
              "text": "<MT>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "Where",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 5,
            "endIndex": 11
          }
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/repository!WhereBuilder:class",
          "docComment": "/**\n * A builder for Where object. It provides fluent APIs to add clauses such as `and`, `or`, and other operators.\n *\n * @example\n * ```ts\n * const whereBuilder = new WhereBuilder();\n * const where = whereBuilder\n *   .eq('a', 1)\n *   .and({x: 'x'}, {y: {gt: 1}})\n *   .and({b: 'b'}, {c: {lt: 1}})\n *   .or({d: 'd'}, {e: {neq: 1}})\n *   .build();\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class WhereBuilder<MT extends "
            },
            {
              "kind": "Content",
              "text": "object "
            },
            {
              "kind": "Content",
              "text": "= "
            },
            {
              "kind": "Reference",
              "text": "AnyObject",
              "canonicalReference": "@loopback/repository!AnyObject:interface"
            },
            {
              "kind": "Content",
              "text": "> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "MT",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "WhereBuilder",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/repository!WhereBuilder:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `WhereBuilder` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(w?: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "w",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#and:member(1)",
              "docComment": "/**\n * Add an `and` clause.\n *\n * @param w - One or more where objects\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "and(...w: "
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT> | "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>[])[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "w",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 6
                  }
                }
              ],
              "name": "and"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#between:member(1)",
              "docComment": "/**\n * Add a `between` condition\n *\n * @param key - Property name\n *\n * @param val1 - Property value lower bound\n *\n * @param val2 - Property value upper bound\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "between<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val1: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": ", val2: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 10,
                "endIndex": 11
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val1",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                },
                {
                  "parameterName": "val2",
                  "parameterTypeTokenRange": {
                    "startIndex": 8,
                    "endIndex": 9
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "between"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#build:member(1)",
              "docComment": "/**\n * Get the where object\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "build(): "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "build"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#cast:member(1)",
              "docComment": "/**\n * @deprecated\n *\n * Starting from TypeScript 3.2, we don't have to cast any more. This method should be considered as `deprecated`.\n *\n * Cast an `and`, `or`, or condition clause to Where\n *\n * @param clause - And/Or/Condition clause\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "cast(clause: "
                },
                {
                  "kind": "Reference",
                  "text": "AndClause",
                  "canonicalReference": "@loopback/repository!AndClause:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT> | "
                },
                {
                  "kind": "Reference",
                  "text": "OrClause",
                  "canonicalReference": "@loopback/repository!OrClause:interface"
                },
                {
                  "kind": "Content",
                  "text": "<MT> | "
                },
                {
                  "kind": "Reference",
                  "text": "Condition",
                  "canonicalReference": "@loopback/repository!Condition:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "clause",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 7
                  }
                }
              ],
              "name": "cast"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#eq:member(1)",
              "docComment": "/**\n * Add an `=` condition\n *\n * @param key - Property name\n *\n * @param val - Property value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "eq<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "eq"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#exists:member(1)",
              "docComment": "/**\n * Add a `exists` condition\n *\n * @param key - Property name\n *\n * @param val - Exists or not\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "exists<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val?: "
                },
                {
                  "kind": "Content",
                  "text": "boolean"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "exists"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#gt:member(1)",
              "docComment": "/**\n * Add a `>` condition\n *\n * @param key - Property name\n *\n * @param val - Property value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "gt<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "gt"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#gte:member(1)",
              "docComment": "/**\n * Add a `>=` condition\n *\n * @param key - Property name\n *\n * @param val - Property value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "gte<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "gte"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#impose:member(1)",
              "docComment": "/**\n * Add a where object. For conflicting keys with the existing where object, create an `and` clause.\n *\n * @param where - Where filter\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "impose(where: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "where",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                }
              ],
              "name": "impose"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#inq:member(1)",
              "docComment": "/**\n * Add a `inq` condition\n *\n * @param key - Property name\n *\n * @param val - An array of property values\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "inq<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K][]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "inq"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#lt:member(1)",
              "docComment": "/**\n * Add a `<` condition\n *\n * @param key - Property name\n *\n * @param val - Property value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "lt<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "lt"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#lte:member(1)",
              "docComment": "/**\n * Add a `<=` condition\n *\n * @param key - Property name\n *\n * @param val - Property value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "lte<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "lte"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#neq:member(1)",
              "docComment": "/**\n * Add a `!=` condition\n *\n * @param key - Property name\n *\n * @param val - Property value\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "neq<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "neq"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#nin:member(1)",
              "docComment": "/**\n * Add a `nin` condition\n *\n * @param key - Property name\n *\n * @param val - An array of property values\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "nin<K extends "
                },
                {
                  "kind": "Reference",
                  "text": "KeyOf",
                  "canonicalReference": "@loopback/repository!KeyOf:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ">(key: "
                },
                {
                  "kind": "Content",
                  "text": "K"
                },
                {
                  "kind": "Content",
                  "text": ", val: "
                },
                {
                  "kind": "Content",
                  "text": "MT[K][]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "key",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "val",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "K",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "nin"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/repository!WhereBuilder#or:member(1)",
              "docComment": "/**\n * Add an `or` clause.\n *\n * @param w - One or more where objects\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "or(...w: "
                },
                {
                  "kind": "Content",
                  "text": "("
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT> | "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>[])[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "this"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 8
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "w",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 6
                  }
                }
              ],
              "name": "or"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/repository!WhereBuilder#where:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "where: "
                },
                {
                  "kind": "Reference",
                  "text": "Where",
                  "canonicalReference": "@loopback/repository!Where:type"
                },
                {
                  "kind": "Content",
                  "text": "<MT>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "where",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": []
        }
      ]
    }
  ]
}
