// node native scope
import { EventEmitter } from 'node:events';
import * as crypto from 'node:crypto';
import * as fs from 'node:fs';
import * as http from 'node:http';
import * as net from 'node:net';
import * as path from 'node:path';
import * as tls from 'node:tls';
import * as url from 'node:url';
import * as http2 from 'node:http2';

export { EventEmitter, crypto, fs, http, net, path, tls, url, http2 };

// tsclass scope
import * as tsclass from '@tsclass/tsclass';

export { tsclass };

// pushrocks scope
import * as smartcrypto from '@push.rocks/smartcrypto';
import * as smartlog from '@push.rocks/smartlog';
import * as smartlogDestinationLocal from '@push.rocks/smartlog/destination-local';
import * as smartchallenge from '@push.rocks/smartchallenge';
import * as smartnftables from '@push.rocks/smartnftables';
import * as smartrust from '@push.rocks/smartrust';

export {
  smartcrypto,
  smartchallenge,
  smartlog,
  smartlogDestinationLocal,
  smartnftables,
  smartrust,
};

// third party scope
import { minimatch } from 'minimatch';

export { minimatch };
