/**
 * Flowtype definitions for balance-manager
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.21.0
 */

import * as $Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_app_2f_observer_2d_manager from "@yoroi/types/lib/typescript/app/observer-manager";
import * as $Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_portfolio_2f_event from "@yoroi/types/lib/typescript/portfolio/event";
import * as $Flowgen$Import$rxjs from "rxjs";
import * as $Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_app_2f_queue_2d_task_2d_manager from "@yoroi/types/lib/typescript/app/queue-task-manager";
import { App, Portfolio } from "@yoroi/types";
declare export var portfolioBalanceManagerMaker: (
  x: {
    ...{
      tokenManager: Portfolio.Manager.Token,
      storage: Portfolio.Storage.Balance,
      primaryTokenInfo: Portfolio.Token.Info,
      ...
    },
    ...$ReadOnly<{
      sourceId: string,
      ...
    }>,
  },
  x?: {
    observer?: $ReadOnly<{
      subscribe: (
        observerOrNext: $Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_app_2f_observer_2d_manager.AppSubscriber<$Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_portfolio_2f_event.PortfolioEventBalanceManager>
      ) => $Flowgen$Import$rxjs.Subscription,
      unsubscribe: (subscription: $Flowgen$Import$rxjs.Subscription) => void,
      notify: (
        value: $Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_portfolio_2f_event.PortfolioEventBalanceManager
      ) => void,
      destroy: () => void,
      observable: $Flowgen$Import$rxjs.Observable<$Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_portfolio_2f_event.PortfolioEventBalanceManager>,
      ...
    }> | void,
    queue?: $ReadOnly<{
      enqueue: (
        task: $Flowgen$Import$_40_yoroi_2f_types_2f_lib_2f_typescript_2f_app_2f_queue_2d_task_2d_manager.AppQueueTask
      ) => void,
      destroy: () => void,
      ...
    }> | void,
    ...
  }
) => Portfolio.Manager.Balance;
