import { isoly } from "isoly"; import { isly } from "isly"; import { Amount } from "./Amount"; export type Balance = { available?: number; reserved?: Balance.Reserved; }; export declare namespace Balance { type Reserve = (typeof Reserve.values)[number]; namespace Reserve { const values: readonly ["incoming", "outgoing", "buffer"]; const type: isly.Type<"incoming" | "outgoing" | "buffer">; } type Reserved = Partial>; const type: import("isly/dist/cjs/object").IslyObject; type Legacy = Partial>; namespace Legacy { type Entry = (typeof Entry.values)[number]; namespace Entry { const values: readonly ["actual", "incomingReserved", "outgoingReserved", "bufferReserved"]; const type: isly.Type<"actual" | "incomingReserved" | "outgoingReserved" | "bufferReserved">; } const type: isly.Type>>; } type MaybeLegacy = Balance | Legacy; namespace MaybeLegacy { const legacyType: isly.Type; } type Extended = Balance & Legacy; const Extended: isly.Type; function update(currency: isoly.Currency, balance: MaybeLegacy): Extended; function computeReserved(currency: isoly.Currency, balance: Balance): Amount; function computeActual(currency: isoly.Currency, balance: Balance): Amount; function add(addendee: Extended, addend: Extended, currency: isoly.Currency): Extended; }