# Types

Type definitions for ENS deployments, addresses, status, and provenance.

## Import

```ts
import type {
  EnsDeploymentStatus,
  EnsDeploymentProvenance,
  EnsV1ContractAddresses,
  EnsV1Deployment,
  EnsV2PublicContractAddresses,
  EnsV2ImplementationAddresses,
  EnsV2MigrationContractAddresses,
  EnsV2InfrastructureContractAddresses,
  EnsV2ExperimentalHcaContractAddresses,
  EnsV2TestTokenAddresses,
  EnsV2Deployment,
} from "@ensforge/contracts/deployments";
```

## Usage

```ts
import { mainnetV1Deployment } from "@ensforge/contracts/deployments";
import type { EnsV1Deployment } from "@ensforge/contracts/deployments";

function inspectDeployment(deployment: EnsV1Deployment) {
  return {
    chainId: deployment.chainId,
    contracts: deployment.contracts,
    sourceCommit: deployment.provenance.commit,
  };
}

inspectDeployment(mainnetV1Deployment);
```

## Exports

| Export                                  | Description                               |
| --------------------------------------- | ----------------------------------------- |
| `EnsDeploymentStatus`                   | Exported TypeScript type for this module. |
| `EnsDeploymentProvenance`               | Exported TypeScript type for this module. |
| `EnsV1ContractAddresses`                | Exported TypeScript type for this module. |
| `EnsV1Deployment`                       | Type of an ENSv1 deployment descriptor.   |
| `EnsV2PublicContractAddresses`          | Exported TypeScript type for this module. |
| `EnsV2ImplementationAddresses`          | Exported TypeScript type for this module. |
| `EnsV2MigrationContractAddresses`       | Exported TypeScript type for this module. |
| `EnsV2InfrastructureContractAddresses`  | Exported TypeScript type for this module. |
| `EnsV2ExperimentalHcaContractAddresses` | Exported TypeScript type for this module. |
| `EnsV2TestTokenAddresses`               | Exported TypeScript type for this module. |
| `EnsV2Deployment`                       | Type of an ENSv2 deployment descriptor.   |

## Entrypoint

`@ensforge/contracts/deployments`

Use these types when accepting deployment metadata in application or release tooling. Prefer
`typeof mainnetV1Deployment` when a function is intentionally tied to one exact deployment.
