// node native
import * as path from 'path';
export { path };

// @push.rocks scope
import * as early from '@push.rocks/early';
early.start('tsview');

import * as smartconfig from '@push.rocks/smartconfig';
import * as smartbucket from '@push.rocks/smartbucket';
import * as smartcli from '@push.rocks/smartcli';
import * as smartdata from '@push.rocks/smartdata';
import * as smartfile from '@push.rocks/smartfile';
import * as smartlog from '@push.rocks/smartlog';
import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
import * as smartnetwork from '@push.rocks/smartnetwork';
import * as smartopen from '@push.rocks/smartopen';
import * as smartpath from '@push.rocks/smartpath';
import * as smartpromise from '@push.rocks/smartpromise';
import * as smartrx from '@push.rocks/smartrx';

export {
  early,
  smartconfig,
  smartbucket,
  smartcli,
  smartdata,
  smartfile,
  smartlog,
  smartlogDestinationLocal,
  smartnetwork,
  smartopen,
  smartpath,
  smartpromise,
  smartrx,
};

// AWS S3 SDK for direct S3 operations
import * as s3 from '@aws-sdk/client-s3';
export { s3 };

// MongoDB driver for ObjectId handling
import * as mongodb from 'mongodb';
export { mongodb };

// @api.global scope
import * as typedrequest from '@api.global/typedrequest';
import * as typedrequestInterfaces from '@api.global/typedrequest-interfaces';
import * as typedserver from '@api.global/typedserver';

export {
  typedrequest,
  typedrequestInterfaces,
  typedserver,
};
