/**
 * Public surface for the reporting module (F-143, F-146).
 * Re-exports the routes registrar and the contract/permission helpers so the
 * composition root (build-app.ts) and tests import only this index.
 */
export { registerReportingRoutes } from './api/reporting.routes.js';
export type { ReportingRoutesDeps } from './api/reporting.routes.js';
export {
  REPORTING_FILTER_META,
  comparisonRange,
  parseReportingFilters,
  reportingFiltersSchema,
  REPORTING_PAGE_SIZE_DEFAULT,
  REPORTING_PAGE_SIZE_MAX,
} from './application/filters.js';
export {
  ReportingService,
  type SummaryResponse,
  type SalesResponse,
  type SalesRow,
  type Metrics,
} from './application/reporting-service.js';
export { REPORTING_ROLE_PERMISSIONS, requireReportingPermission, userReportingPermissions } from './domain/permissions.js';
export type { ReportingPermission } from './domain/permissions.js';
export {
  REPORTING_CHANNELS,
  REPORTING_COMPARISON,
  REPORTING_GROUP_BY,
  type ComparisonMode,
  type ComparisonRange,
  type DateRange,
  type FilterFieldMeta,
  type GroupBy,
  type ReportingChannel,
  type ReportingFilterMeta,
  type ReportingFilters,
  type DataAvailability,
  type Availability,
} from './domain/filters.js';
