/**
 * @deprecated Use ApplicationErrorCode in Result instead of throwing ApplicationError.
 */
export type CommonApplicationErrorKind =
| 'not_found'
| 'forbidden'
| 'conflict'
| 'validation'
| 'unknown'
| string;

/**
 * @deprecated Use ApplicationErrorCode in Result instead of throwing ApplicationError.
 */
export interface ApplicationError<K extends string = CommonApplicationErrorKind, D = unknown> extends Error {
  readonly type: 'application';
  readonly context: string;
  readonly kind: K;
  readonly details?: D;
}