{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.47.0",
    "schemaVersion": 1011,
    "oldestForwardsCompatibleVersion": 1001,
    "tsdocConfig": {
      "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
      "noStandardTags": true,
      "tagDefinitions": [
        {
          "tagName": "@alpha",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@beta",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@defaultValue",
          "syntaxKind": "block"
        },
        {
          "tagName": "@decorator",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@deprecated",
          "syntaxKind": "block"
        },
        {
          "tagName": "@eventProperty",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@example",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@experimental",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@inheritDoc",
          "syntaxKind": "inline"
        },
        {
          "tagName": "@internal",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@label",
          "syntaxKind": "inline"
        },
        {
          "tagName": "@link",
          "syntaxKind": "inline",
          "allowMultiple": true
        },
        {
          "tagName": "@override",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@packageDocumentation",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@param",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@privateRemarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@public",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@readonly",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@remarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@returns",
          "syntaxKind": "block"
        },
        {
          "tagName": "@sealed",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@see",
          "syntaxKind": "block"
        },
        {
          "tagName": "@throws",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@typeParam",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@virtual",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@betaDocumentation",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@internalRemarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@preapproved",
          "syntaxKind": "modifier"
        }
      ],
      "supportForTags": {
        "@alpha": true,
        "@beta": true,
        "@defaultValue": true,
        "@decorator": true,
        "@deprecated": true,
        "@eventProperty": true,
        "@example": true,
        "@experimental": true,
        "@inheritDoc": true,
        "@internal": true,
        "@label": true,
        "@link": true,
        "@override": true,
        "@packageDocumentation": true,
        "@param": true,
        "@privateRemarks": true,
        "@public": true,
        "@readonly": true,
        "@remarks": true,
        "@returns": true,
        "@sealed": true,
        "@see": true,
        "@throws": true,
        "@typeParam": true,
        "@virtual": true,
        "@betaDocumentation": true,
        "@internalRemarks": true,
        "@preapproved": true
      },
      "reportUnsupportedHtmlElements": false
    }
  },
  "kind": "Package",
  "canonicalReference": "@well-known-components/pg-component!",
  "docComment": "",
  "name": "@well-known-components/pg-component",
  "preserveMemberOrder": false,
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@well-known-components/pg-component!",
      "name": "",
      "preserveMemberOrder": false,
      "members": [
        {
          "kind": "Function",
          "canonicalReference": "@well-known-components/pg-component!createPgComponent:function(1)",
          "docComment": "/**\n * Query a Postgres (https://www.postgresql.org) database with ease. It uses a pool behind the scenes and will try to gracefully close it after finishing the connection.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createPgComponent(components: "
            },
            {
              "kind": "Reference",
              "text": "createPgComponent.NeededComponents",
              "canonicalReference": "@well-known-components/pg-component!createPgComponent.NeededComponents:type"
            },
            {
              "kind": "Content",
              "text": ", options?: "
            },
            {
              "kind": "Reference",
              "text": "Options",
              "canonicalReference": "@well-known-components/pg-component!Options:type"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "Promise",
              "canonicalReference": "!Promise:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "IPgComponent",
              "canonicalReference": "@well-known-components/pg-component!IPgComponent:interface"
            },
            {
              "kind": "Content",
              "text": " & "
            },
            {
              "kind": "Reference",
              "text": "IBaseComponent",
              "canonicalReference": "@well-known-components/interfaces!IBaseComponent:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/index.ts",
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 11
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "components",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isOptional": false
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "isOptional": true
            }
          ],
          "name": "createPgComponent"
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@well-known-components/pg-component!createPgComponent:namespace",
          "docComment": "/**\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace createPgComponent "
            }
          ],
          "fileUrlPath": "src/index.ts",
          "releaseTag": "Public",
          "name": "createPgComponent",
          "preserveMemberOrder": false,
          "members": [
            {
              "kind": "TypeAlias",
              "canonicalReference": "@well-known-components/pg-component!createPgComponent.NeededComponents:type",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type NeededComponents = "
                },
                {
                  "kind": "Content",
                  "text": "{\n        logs: "
                },
                {
                  "kind": "Reference",
                  "text": "ILoggerComponent",
                  "canonicalReference": "@well-known-components/interfaces!ILoggerComponent:type"
                },
                {
                  "kind": "Content",
                  "text": ";\n        config: "
                },
                {
                  "kind": "Reference",
                  "text": "IConfigComponent",
                  "canonicalReference": "@well-known-components/interfaces!IConfigComponent:interface"
                },
                {
                  "kind": "Content",
                  "text": ";\n        metrics?: "
                },
                {
                  "kind": "Reference",
                  "text": "IMetricsComponent",
                  "canonicalReference": "@well-known-components/pg-component!IMetricsComponent:type"
                },
                {
                  "kind": "Content",
                  "text": ";\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "NeededComponents",
              "typeTokenRange": {
                "startIndex": 1,
                "endIndex": 8
              }
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@well-known-components/pg-component!IMetricsComponent:type",
          "docComment": "/**\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type IMetricsComponent = "
            },
            {
              "kind": "Reference",
              "text": "IBaseMetricsComponent",
              "canonicalReference": "@well-known-components/pg-component!~IBaseMetricsComponent"
            },
            {
              "kind": "Content",
              "text": "<keyof typeof "
            },
            {
              "kind": "Reference",
              "text": "metricDeclarations",
              "canonicalReference": "@well-known-components/pg-component!metricDeclarations:var"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/types.ts",
          "releaseTag": "Public",
          "name": "IMetricsComponent",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@well-known-components/pg-component!IPgComponent:interface",
          "docComment": "/**\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface IPgComponent extends "
            },
            {
              "kind": "Reference",
              "text": "IDatabase",
              "canonicalReference": "@well-known-components/interfaces!IDatabase:interface"
            },
            {
              "kind": "Content",
              "text": " "
            }
          ],
          "fileUrlPath": "src/types.ts",
          "releaseTag": "Public",
          "name": "IPgComponent",
          "preserveMemberOrder": false,
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@well-known-components/pg-component!IPgComponent#query:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "query<T extends "
                },
                {
                  "kind": "Reference",
                  "text": "Record",
                  "canonicalReference": "!Record:type"
                },
                {
                  "kind": "Content",
                  "text": "<string, any>"
                },
                {
                  "kind": "Content",
                  "text": ">(sql: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "IDatabase.IQueryResult",
                  "canonicalReference": "@well-known-components/interfaces!IDatabase.IQueryResult:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "sql",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  },
                  "isOptional": false
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "query"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@well-known-components/pg-component!IPgComponent#query:member(2)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "query<T extends "
                },
                {
                  "kind": "Reference",
                  "text": "Record",
                  "canonicalReference": "!Record:type"
                },
                {
                  "kind": "Content",
                  "text": "<string, any>"
                },
                {
                  "kind": "Content",
                  "text": ">(sql: "
                },
                {
                  "kind": "Reference",
                  "text": "SQLStatement",
                  "canonicalReference": "sql-template-strings!SQLStatement:class"
                },
                {
                  "kind": "Content",
                  "text": ", durationQueryNameLabel?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "IDatabase.IQueryResult",
                  "canonicalReference": "@well-known-components/interfaces!IDatabase.IQueryResult:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 12
              },
              "releaseTag": "Public",
              "overloadIndex": 2,
              "parameters": [
                {
                  "parameterName": "sql",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  },
                  "isOptional": false
                },
                {
                  "parameterName": "durationQueryNameLabel",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 7
                  },
                  "isOptional": true
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "query"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@well-known-components/pg-component!IPgComponent#start:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "start(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "start"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@well-known-components/pg-component!IPgComponent#stop:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "stop(): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<void>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "stop"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "@well-known-components/pg-component!IPgComponent#streamQuery:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "streamQuery<T = "
                },
                {
                  "kind": "Content",
                  "text": "any"
                },
                {
                  "kind": "Content",
                  "text": ">(sql: "
                },
                {
                  "kind": "Reference",
                  "text": "SQLStatement",
                  "canonicalReference": "sql-template-strings!SQLStatement:class"
                },
                {
                  "kind": "Content",
                  "text": ", config?: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        batchSize?: number;\n    }"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "AsyncGenerator",
                  "canonicalReference": "!AsyncGenerator:interface"
                },
                {
                  "kind": "Content",
                  "text": "<T>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 7,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "sql",
                  "parameterTypeTokenRange": {
                    "startIndex": 3,
                    "endIndex": 4
                  },
                  "isOptional": false
                },
                {
                  "parameterName": "config",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 6
                  },
                  "isOptional": true
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "T",
                  "constraintTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "streamQuery"
            }
          ],
          "extendsTokenRanges": [
            {
              "startIndex": 1,
              "endIndex": 2
            }
          ]
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@well-known-components/pg-component!IPgComponent:namespace",
          "docComment": "/**\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace IPgComponent "
            }
          ],
          "fileUrlPath": "src/types.ts",
          "releaseTag": "Public",
          "name": "IPgComponent",
          "preserveMemberOrder": false,
          "members": [
            {
              "kind": "TypeAlias",
              "canonicalReference": "@well-known-components/pg-component!IPgComponent.Composable:type",
              "docComment": "/**\n * @public\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "type Composable = "
                },
                {
                  "kind": "Content",
                  "text": "{\n        pg: "
                },
                {
                  "kind": "Reference",
                  "text": "IPgComponent",
                  "canonicalReference": "@well-known-components/pg-component!IPgComponent:interface"
                },
                {
                  "kind": "Content",
                  "text": ";\n    }"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "Composable",
              "typeTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              }
            }
          ]
        },
        {
          "kind": "Variable",
          "canonicalReference": "@well-known-components/pg-component!metricDeclarations:var",
          "docComment": "/**\n * Metrics declarations, needed for your IMetricsComponent\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "metricDeclarations: "
            },
            {
              "kind": "Reference",
              "text": "IMetricsComponent.MetricsRecordDefinition",
              "canonicalReference": "@well-known-components/interfaces!IMetricsComponent.MetricsRecordDefinition:type"
            },
            {
              "kind": "Content",
              "text": "<string>"
            }
          ],
          "fileUrlPath": "src/metrics.ts",
          "isReadonly": true,
          "releaseTag": "Public",
          "name": "metricDeclarations",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 3
          }
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@well-known-components/pg-component!Options:type",
          "docComment": "/**\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export type Options = "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<{\n    pool: "
            },
            {
              "kind": "Reference",
              "text": "PoolConfig",
              "canonicalReference": "@types/pg!PoolConfig:interface"
            },
            {
              "kind": "Content",
              "text": ";\n    migration: "
            },
            {
              "kind": "Reference",
              "text": "RunnerOption",
              "canonicalReference": "node-pg-migrate!RunnerOption:type"
            },
            {
              "kind": "Content",
              "text": ";\n}>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "fileUrlPath": "src/types.ts",
          "releaseTag": "Public",
          "name": "Options",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 7
          }
        }
      ]
    }
  ]
}
