export type { Media } from "./entities/models/media";
export { MediaNotFoundError } from "./entities/errors/media";
export { InputParseError } from "./entities/errors/common";
export type { MediaRouter } from "./integrations/api/router";

// Use case schemas + types (Plan 9 R18)
export {
  getMediaInputSchema,
  getMediaOutputSchema,
  type GetMediaInput,
  type GetMediaOutput,
  type IGetMediaUseCase,
} from "./application/use-cases/get-media.use-case";
export {
  listMediaInputSchema,
  listMediaOutputSchema,
  type ListMediaInput,
  type ListMediaOutput,
  type IListMediaUseCase,
} from "./application/use-cases/list-media.use-case";
export {
  deleteMediaInputSchema,
  type DeleteMediaInput,
  type IDeleteMediaUseCase,
} from "./application/use-cases/delete-media.use-case";

// Controller type aliases
export type { IGetMediaController } from "./interface-adapters/controllers/get-media.controller";
export type { IListMediaController } from "./interface-adapters/controllers/list-media.controller";
export type { IDeleteMediaController } from "./interface-adapters/controllers/delete-media.controller";

// <gen:events>
// <gen:realtime-channels>
export { mediaManifest, type MediaManifest } from "./feature.manifest";
