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

import { InvalidDataReason } from "../errors/index";
import type {
  _Int64_bigint,
  _Int64_num,
  _Uint64_bigint,
  _Uint64_num,
  FixLenHexString,
  HexString,
  Int64_str,
  ParsedCredential,
  Uint8_t,
  Uint16_t,
  Uint32_t,
  Uint64_str,
  ValidBIP32Path,
  VarLenAsciiString,
  ParsedAnchor,
} from "../types/internal";
import type {
  AnchorParams,
  bigint_like,
  CredentialParams,
} from "../types/public";
declare export var MAX_UINT_64_STR: "18446744073709551615";
declare export var MIN_INT_64_STR: "-9223372036854775808";
declare export var MAX_INT_64_STR: "9223372036854775807";
declare export var isString: (data: mixed) => boolean;
declare export var isInteger: (data: mixed) => boolean;
declare export var isArray: (data: mixed) => boolean;
declare export var isBuffer: (data: mixed) => boolean;
declare export var isObject: (data: mixed) => boolean;
declare export var isUint32: (data: mixed) => boolean;
declare export var isUint16: (data: mixed) => boolean;
declare export var isUint8: (data: mixed) => boolean;
declare export var isHexString: (data: mixed) => boolean;
declare export var isHexStringOfLength: <L: number>(
  data: mixed,
  expectedByteLength: L
) => boolean;
declare export var isValidPath: (data: mixed) => boolean;
declare export var isUintStr: (
  data: mixed,
  constraints: {|
    min?: string,
    max?: string,
  |}
) => boolean;
declare export var isUint64str: (data: mixed) => boolean;
declare export var isUint64Number: (data: mixed) => boolean;
declare export var isUint64Bigint: (data: mixed) => boolean;
declare export var isIntStr: (
  data: mixed,
  constraints: {|
    min?: string,
    max?: string,
  |}
) => boolean;
declare export var isInt64str: (data: mixed) => boolean;
declare export var isInt64Number: (data: mixed) => boolean;
declare export var isInt64Bigint: (data: mixed) => boolean;
declare export function validate(
  cond: boolean,
  errMsg: $Values<typeof InvalidDataReason>
): boolean;
declare export function parseBoolean(
  value: mixed,
  errMsg: $Values<typeof InvalidDataReason>
): boolean;
declare export function parseAscii(
  str: mixed,
  errMsg: $Values<typeof InvalidDataReason>
): VarLenAsciiString;
declare export function parseHexString(
  str: mixed,
  errMsg: $Values<typeof InvalidDataReason>
): HexString;
declare export function parseHexStringOfLength<L: number>(
  str: mixed,
  length: L,
  errMsg: $Values<typeof InvalidDataReason>
): FixLenHexString<L>;
declare export function parseInt64_str(
  val: mixed,
  constraints: {|
    min?: string,
    max?: string,
  |},
  errMsg: $Values<typeof InvalidDataReason>
): Int64_str;
declare export function parseUint64_str(
  val: mixed,
  constraints: {|
    min?: string,
    max?: string,
  |},
  errMsg: $Values<typeof InvalidDataReason>
): Uint64_str;
declare export function parseUint32_t(
  value: mixed,
  errMsg: $Values<typeof InvalidDataReason>
): Uint32_t;
declare export function parseUint16_t(
  value: mixed,
  errMsg: $Values<typeof InvalidDataReason>
): Uint16_t;
declare export function parseUint8_t(
  value: number,
  errMsg: $Values<typeof InvalidDataReason>
): Uint8_t;
declare export function parseBIP32Path(
  value: mixed,
  errMsg: $Values<typeof InvalidDataReason>
): ValidBIP32Path;
declare export function parseIntFromStr(
  str: string,
  errMsg: $Values<typeof InvalidDataReason>
): number;
declare export function parseCoin(
  coin: bigint_like,
  errMsg: $Values<typeof InvalidDataReason>
): Uint64_str;
declare export function parseCredential(
  credential: CredentialParams,
  errMsg: $Values<typeof InvalidDataReason>
): ParsedCredential;
declare export function parseAnchor(params: AnchorParams): ParsedAnchor | null;
