diff --git a/src/chain-observers/index.ts b/src/chain-observers/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3a728188d8c5458f7da8f9936f27ac919a9ee1fa
--- /dev/null
+++ b/src/chain-observers/index.ts
@@ -0,0 +1,28 @@
+export type {
+  IAccount, IAccountBalance, IHiveAssetDetailedBalance,
+  IHiveAssetWithSavingsDetailedBalance, IHiveHPAssetDetailedBalance
+} from "./classifiers/account-classifier";
+export type { ITransactionData, IBlockData } from "./classifiers/block-classifier";
+export type { IBlockHeaderData } from "./classifiers/block-header-classifier";
+export type { IImpactedAccount, IImpactedAccountData } from "./classifiers/impacted-account-classifier";
+export type { IOperationBaseData, IOperationData, IOperationTransactionPair } from "./classifiers/operation-classifier";
+export type { IRcAccount, IRcAccountData } from "./classifiers/rc-account-classifier";
+export type { IWitness, IWitnessData } from "./classifiers/witness-classifier";
+
+export type { IAccountProviderData, TAccountProvided } from "./providers/account-provider";
+export { EAlarmType, type IAlarmAccountsData, type TAlarmAccounts } from "./providers/alarm-provider";
+export type { IBlockHeaderProviderData } from "./providers/block-header-provider";
+export type { IBlockProviderData } from "./providers/block-provider";
+export type { IExchangeTransferMetadata, IExchangeTransferProviderData } from "./providers/exchange-transfer-provider";
+export type { IFeedPriceData, IFeedPriceProviderData } from "./providers/feed-price-provider";
+export type {
+  IInternalMarketCancelOperation, IInternalMarketCreateOperation,
+  IInternalMarketProviderData, TInternalMarketOperation
+} from "./providers/internal-market-provider";
+export type { IMentionedAccountProviderData, TMentionedAccountProvided } from "./providers/mention-provider";
+export type { IRcAccountProviderData, TRcAccountProvided } from "./providers/rc-account-provider";
+export type { ITransactionProviderData, TTransactionProvider } from "./providers/transaction-provider";
+export type { IWhaleAlertMetadata, IWhaleAlertProviderData } from "./providers/whale-alert-provider";
+export type { IWitnessProviderData, TWitnessProvider } from "./providers/witness-provider";
+
+export { Exchange } from "../utils/known-exchanges";
diff --git a/src/chain-observers/providers/rc-account-provider.ts b/src/chain-observers/providers/rc-account-provider.ts
index b87ead2baf4c932baababdcb4de4c880e3116e01..590cb31013968238e4e03f49c13ecee055ac98f1 100644
--- a/src/chain-observers/providers/rc-account-provider.ts
+++ b/src/chain-observers/providers/rc-account-provider.ts
@@ -8,7 +8,7 @@ export type TRcAccountProvided<TAccounts extends Array<TAccountName>> = {
   [K in TAccounts[number]]: IRcAccount;
 };
 
-export interface IAccountProviderData<TAccounts extends Array<TAccountName>> {
+export interface IRcAccountProviderData<TAccounts extends Array<TAccountName>> {
   rcAccounts: TRcAccountProvided<TAccounts>;
 };
 
@@ -25,7 +25,7 @@ export class RcAccountProvider<TAccounts extends Array<TAccountName> = Array<TAc
     }));
   }
 
-  public async provide(data: DataEvaluationContext): Promise<IAccountProviderData<TAccounts>> {
+  public async provide(data: DataEvaluationContext): Promise<IRcAccountProviderData<TAccounts>> {
     const result = {
       rcAccounts: {}
     };
@@ -34,6 +34,6 @@ export class RcAccountProvider<TAccounts extends Array<TAccountName> = Array<TAc
     for(const rcAccount of this.rcAccounts)
       result.rcAccounts[rcAccount] = rcAccounts.rcAccounts[rcAccount];
 
-    return result as IAccountProviderData<TAccounts>;
+    return result as IRcAccountProviderData<TAccounts>;
   }
 }
diff --git a/src/chain-observers/providers/transaction-provider.ts b/src/chain-observers/providers/transaction-provider.ts
index 5a8deb90e12e85ee9ddf92b5dfcb2111314a3836..744ef3552d71227004a361b81ae61765aee580f7 100644
--- a/src/chain-observers/providers/transaction-provider.ts
+++ b/src/chain-observers/providers/transaction-provider.ts
@@ -8,7 +8,7 @@ export type TTransactionProvider<TIdOfTx extends Array<string>> = {
   [K in TIdOfTx[number]]: transaction;
 };
 
-export interface IAccountProviderData<TIdOfTx extends Array<string>> {
+export interface ITransactionProviderData<TIdOfTx extends Array<string>> {
   transactions: Partial<TTransactionProvider<TIdOfTx>>;
 };
 
@@ -25,7 +25,7 @@ export class TransactionByIdProvider<TIdOfTx extends Array<string> = Array<strin
     ];
   }
 
-  public async provide(data: DataEvaluationContext): Promise<IAccountProviderData<TIdOfTx>> {
+  public async provide(data: DataEvaluationContext): Promise<ITransactionProviderData<TIdOfTx>> {
     const result = {
       transactions: {}
     };
@@ -35,6 +35,6 @@ export class TransactionByIdProvider<TIdOfTx extends Array<string> = Array<strin
       if (block.transactionsPerId.has(txId))
         result.transactions[txId] = block.transactionsPerId.get(txId);
 
-    return result as IAccountProviderData<TIdOfTx>;
+    return result as ITransactionProviderData<TIdOfTx>;
   }
 }
diff --git a/src/index.ts b/src/index.ts
index 6001942182e9ff5aae4f262c22ebc7766def7a85..0e9230864f409a7d9ed15a8270271d257b77a2df 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,6 +1,11 @@
 import { WorkerBee } from "./bot";
 import { IWorkerBeeConstructor } from "./interfaces";
 
+export * from "./types/iterator";
+export * from "./types/subscribable";
+
+export * from "./chain-observers";
+
 export * from "./interfaces";
 export { IStartConfiguration } from "./bot";
 export { WorkerBeeError } from "./errors";