//#region src/utils/credentialUseTypes.d.ts
/**
 * The `CredentialMultiInstanceState` enum represents the state of credential instances on a record.
 */
declare enum CredentialMultiInstanceState {
  /**
   * Indicates the credential record is a single instance record, and the instance has been used.
   */
  SingleInstanceUsed = "SingleInstanceUsed",
  /**
   * Indicates the credential record is a single instance record, and the instance has not been used.
   */
  SingleInstanceUnused = "SingleInstanceUnused",
  /**
   * Indicates the credential record is a multi instance record, where the first instance is used. It may still have other
   * instances that are unused (which can be detected if the length of credentialInstances > 1)
   */
  MultiInstanceFirstUsed = "MultiInstanceFirstUsed",
  /**
   * Indicates the credential record is a multi instance record, where the first instance has not been used. It may still have other
   * instances that are unused (which can be detected if the length of credentialInstances > 1)
   */
  MultiInstanceFirstUnused = "MultiInstanceFirstUnused",
}
/**
 * The `CredentialMultiInstanceUseMode` enum offers different modes for usage of credential instances from records.
 */
declare enum CredentialMultiInstanceUseMode {
  /**
   * Always use a new unused instance. If not available an error will be thrown
   * that a new instance could not be extracted. This removes the instance from the record.
   */
  New = "New",
  /**
   * Use a new unused instance if the credential was received as a batch (mimicking behavior of the `CredentialMultiInstanceUseMode.New` mode).
   * If only a single instance was received it will use the first instance (mimicking behavior of the `CredentialMultiInstanceUseMode.First` mode).
   */
  NewIfReceivedInBatch = "NewIfReceivedInBatch",
  /**
   * use a new unused instance if available, or fallback to the
   * first one if not available. This is a combination of the `first` and `new` modes, and the same
   * behavior applies (in terms of whether the instance is removed from the record).
   */
  NewOrFirst = "NewOrFirst",
  /**
   * Always use the first credential instance on the record. This does not remove
   * the credential instance from the record, and it also does not prevent reusing.
   */
  First = "First",
}
//#endregion
export { CredentialMultiInstanceState, CredentialMultiInstanceUseMode };
//# sourceMappingURL=credentialUseTypes.d.ts.map