/**
 * Flowtype definitions for output
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.21.0
 * @flow
 */

import { InvalidDataReason } from "../errors/invalidDataReason";
import type {
  ParsedAssetGroup,
  ParsedOutput,
  ParsedOutputDestination,
} from "../types/internal";
import type {
  AssetGroup,
  Network,
  TxOutput,
  TxOutputDestination,
} from "../types/public";
declare type ParseTokenAmountFn<T> = (
  val: mixed,
  constraints: {|
    min?: string,
    max?: string,
  |},
  errMsg: $Values<typeof InvalidDataReason>
) => T;
declare export function parseTokenBundle<T>(
  tokenBundle: AssetGroup[],
  emptyTokenBundleAllowed: boolean,
  parseTokenAmountFn: ParseTokenAmountFn<T>
): ParsedAssetGroup<T>[];
declare export function parseTxDestination(
  network: Network,
  destination: TxOutputDestination,
  validateAsTxOutput: boolean
): ParsedOutputDestination;
declare export function parseTxOutput(
  output: TxOutput,
  network: Network
): ParsedOutput;
