import { logger, configureLogger } from './utils/logger';

logger.disableBrowserLogs();

if (typeof window !== 'undefined') {
  configureLogger({
    enabled: false,
    logToConsole: false
  });
}


export { logger, configureLogger };

export { setRpcUrl, getRpcUrl, setExplorerApiUrl, getExplorerApiUrl } from './config';

export * from './core';

export * from './types';

export * from './modules/blocks';
export * from './modules/transactions';
export * from './modules/addresses'; 
export * from './modules/tokens';
export * from './modules/events';

export {
  getNetworkStats,
  NetworkStats,
  NetworkStatsResponse,
  IndexerStatus,
  formatPercentChange,
  formatNumber
} from './modules/stats';

export { PaginatedTransactions, getLatestTransactionsFromExplorer } from './modules/transactions/transactions';

export { 
  getContractInfo,
  isContractVerified,
  getContractAbi,
  findValidContracts
} from './modules/contracts/contracts';

export {
  checkIsContract,
  getContractBytecode,
  isSystemContract
} from './modules/contracts/contract-utils';

export * from './utils/formatters';
export * from './utils/gasCalculations';

export {
  AddressType,
  RegisteredAddressInfo,
  registerAddress,
  registerAddresses,
  unregisterAddress,
  isRegisteredAddress,
  isTokenContract,
  registerSystemContract,
  registerTokenContract,
  getAllRegisteredAddresses
} from './utils/registry';


export { 
  getAddressBalance,
  getAddressTransactions,
  getAddressTransactionCount,
  getAddressTokenBalances,
  isContract,
  getContractCreationInfo,
  getAddressInfo,
  getAddressTransactionsByMethod
} from './modules/addresses/addresses';

export { search } from './modules/search/search'; 