///|
/// Public protocol model and errors.
pub using @model {
  default_limits,
  type HeaderField,
  type LimitKind,
  type Limits,
  type MediaType,
  type MultipartDiagnostic,
  type MultipartError,
  type MultipartEvent,
  type ParserStats,
  type Parameter,
  type ParserPhase,
  type PartMeta,
  redact_error,
}

///|
/// Public Content-Type, header, and explicit boundary helpers.
pub using @syntax {
  body_contains_boundary,
  boundary_from_entropy,
  decode_extended_filename,
  format_content_type,
  format_part_headers,
  parse_content_type,
  parse_part_headers,
  validate_boundary,
}

///|
/// Public streaming parser.
pub using @parser {type MultipartParser}

///|
/// Public streaming writer.
pub using @writer {
  plan,
  type MultipartPlan,
  type MultipartWriter,
  type PlannedEmitter,
  type PlannedPart,
}

///|
/// Public small-field collection and transport-neutral streaming adapters.
pub using @form {
  type ChunkSourceAdapter,
  type DecodedField,
  default_field_collector_limits,
  drive_events,
  type FieldCollector,
  type FieldCollectorLimits,
  type FormError,
  type FormField,
  parse_from_source,
  type PartSinkAdapter,
}

///|
/// Bounded expansion for legacy nested `multipart/mixed` containers.
pub using @mixed {
  default_mixed_limits,
  expand_mixed,
  type MixedError,
  type MixedEvent,
  type MixedLimits,
  type MixedPart,
  type MixedStream,
}

///|
/// Public zero-dependency upload routing pipeline and transactional sink API.
pub using @pipeline {
  crc32_finish,
  crc32_initial,
  crc32_update,
  default_upload_policy,
  type AuditedSink,
  type AuditSummary,
  type MeasuredSink,
  type PartDigest,
  type SinkMetrics,
  type UploadError,
  type UploadPart,
  type UploadPartKind,
  type UploadPipeline,
  type UploadPolicy,
  type UploadProgress,
  type UploadReceipt,
  type UploadSink,
}