///
import { StreamAccountStatus, OutFlow, OutFlowSDKType } from "./base";
import * as _m0 from "protobufjs/minimal";
import { Long } from "../../helpers";
export declare const protobufPackage = "bnbchain.greenfield.payment";
export interface EventPaymentAccountUpdate {
/** address of the payment account */
addr: string;
/** owner address of the payment account */
owner: string;
/** whether the payment account is refundable */
refundable: boolean;
}
export interface EventPaymentAccountUpdateSDKType {
addr: string;
owner: string;
refundable: boolean;
}
/** Stream Payment Record of a stream account */
export interface EventStreamRecordUpdate {
/** account address */
account: string;
/** latest update timestamp of the stream record */
crudTimestamp: Long;
/**
* The per-second rate that an account's balance is changing.
* It is the sum of the account's inbound and outbound flow rates.
*/
netflowRate: string;
/** The balance of the stream account at the latest CRUD timestamp. */
staticBalance: string;
/**
* reserved balance of the stream account
* If the netflow rate is negative, the reserved balance is `netflow_rate * reserve_time`
*/
bufferBalance: string;
/** the locked balance of the stream account after it puts a new object and before the object is sealed */
lockBalance: string;
/** the status of the stream account */
status: StreamAccountStatus;
/** the unix timestamp when the stream account will be settled */
settleTimestamp: Long;
/** the accumulated outflow rates of the stream account */
outFlows: OutFlow[];
}
/** Stream Payment Record of a stream account */
export interface EventStreamRecordUpdateSDKType {
account: string;
crud_timestamp: Long;
netflow_rate: string;
static_balance: string;
buffer_balance: string;
lock_balance: string;
status: StreamAccountStatus;
settle_timestamp: Long;
out_flows: OutFlowSDKType[];
}
/**
* EventForceSettle may be emitted on all Msgs and EndBlocker when a payment account's
* balance or net outflow rate is changed
*/
export interface EventForceSettle {
/** address of the payment account */
addr: string;
/**
* left balance of the payment account after force settlement
* if the balance is positive, it will go to the governance stream account
* if the balance is negative, it's the debt of the system, which will be paid by the governance stream account
*/
settledBalance: string;
}
/**
* EventForceSettle may be emitted on all Msgs and EndBlocker when a payment account's
* balance or net outflow rate is changed
*/
export interface EventForceSettleSDKType {
addr: string;
settled_balance: string;
}
export interface EventDeposit {
/** from is the the address of the account to deposit from */
from: string;
/** to is the address of the stream account to deposit to */
to: string;
/** amount is the amount to deposit */
amount: string;
}
export interface EventDepositSDKType {
from: string;
to: string;
amount: string;
}
export interface EventWithdraw {
/** to the address of the receive account */
to: string;
/** from is the address of the stream account to withdraw from */
from: string;
/** amount is the amount to withdraw */
amount: string;
}
export interface EventWithdrawSDKType {
to: string;
from: string;
amount: string;
}
export declare const EventPaymentAccountUpdate: {
encode(message: EventPaymentAccountUpdate, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): EventPaymentAccountUpdate;
fromJSON(object: any): EventPaymentAccountUpdate;
toJSON(message: EventPaymentAccountUpdate): unknown;
fromPartial, never>>(object: I): EventPaymentAccountUpdate;
fromSDK(object: EventPaymentAccountUpdateSDKType): EventPaymentAccountUpdate;
toSDK(message: EventPaymentAccountUpdate): EventPaymentAccountUpdateSDKType;
};
export declare const EventStreamRecordUpdate: {
encode(message: EventStreamRecordUpdate, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): EventStreamRecordUpdate;
fromJSON(object: any): EventStreamRecordUpdate;
toJSON(message: EventStreamRecordUpdate): unknown;
fromPartial Long.Long;
and: (other: string | number | Long.Long) => Long.Long;
compare: (other: string | number | Long.Long) => number;
comp: (other: string | number | Long.Long) => number;
divide: (divisor: string | number | Long.Long) => Long.Long;
div: (divisor: string | number | Long.Long) => Long.Long;
equals: (other: string | number | Long.Long) => boolean;
eq: (other: string | number | Long.Long) => boolean;
getHighBits: () => number;
getHighBitsUnsigned: () => number;
getLowBits: () => number;
getLowBitsUnsigned: () => number;
getNumBitsAbs: () => number;
greaterThan: (other: string | number | Long.Long) => boolean;
gt: (other: string | number | Long.Long) => boolean;
greaterThanOrEqual: (other: string | number | Long.Long) => boolean;
gte: (other: string | number | Long.Long) => boolean;
isEven: () => boolean;
isNegative: () => boolean;
isOdd: () => boolean;
isPositive: () => boolean;
isZero: () => boolean;
lessThan: (other: string | number | Long.Long) => boolean;
lt: (other: string | number | Long.Long) => boolean;
lessThanOrEqual: (other: string | number | Long.Long) => boolean;
lte: (other: string | number | Long.Long) => boolean;
modulo: (other: string | number | Long.Long) => Long.Long;
mod: (other: string | number | Long.Long) => Long.Long;
multiply: (multiplier: string | number | Long.Long) => Long.Long;
mul: (multiplier: string | number | Long.Long) => Long.Long;
negate: () => Long.Long;
neg: () => Long.Long;
not: () => Long.Long;
notEquals: (other: string | number | Long.Long) => boolean;
neq: (other: string | number | Long.Long) => boolean;
or: (other: string | number | Long.Long) => Long.Long;
shiftLeft: (numBits: number | Long.Long) => Long.Long;
shl: (numBits: number | Long.Long) => Long.Long;
shiftRight: (numBits: number | Long.Long) => Long.Long;
shr: (numBits: number | Long.Long) => Long.Long;
shiftRightUnsigned: (numBits: number | Long.Long) => Long.Long;
shru: (numBits: number | Long.Long) => Long.Long;
subtract: (subtrahend: string | number | Long.Long) => Long.Long;
sub: (subtrahend: string | number | Long.Long) => Long.Long;
toInt: () => number;
toNumber: () => number;
toBytes: (le?: boolean | undefined) => number[];
toBytesLE: () => number[];
toBytesBE: () => number[];
toSigned: () => Long.Long;
toString: (radix?: number | undefined) => string;
toUnsigned: () => Long.Long;
xor: (other: string | number | Long.Long) => Long.Long;
} & Record, never>) | undefined;
netflowRate?: string | undefined;
staticBalance?: string | undefined;
bufferBalance?: string | undefined;
lockBalance?: string | undefined;
status?: StreamAccountStatus | undefined;
settleTimestamp?: string | number | (Long.Long & {
high: number;
low: number;
unsigned: boolean;
add: (addend: string | number | Long.Long) => Long.Long;
and: (other: string | number | Long.Long) => Long.Long;
compare: (other: string | number | Long.Long) => number;
comp: (other: string | number | Long.Long) => number;
divide: (divisor: string | number | Long.Long) => Long.Long;
div: (divisor: string | number | Long.Long) => Long.Long;
equals: (other: string | number | Long.Long) => boolean;
eq: (other: string | number | Long.Long) => boolean;
getHighBits: () => number;
getHighBitsUnsigned: () => number;
getLowBits: () => number;
getLowBitsUnsigned: () => number;
getNumBitsAbs: () => number;
greaterThan: (other: string | number | Long.Long) => boolean;
gt: (other: string | number | Long.Long) => boolean;
greaterThanOrEqual: (other: string | number | Long.Long) => boolean;
gte: (other: string | number | Long.Long) => boolean;
isEven: () => boolean;
isNegative: () => boolean;
isOdd: () => boolean;
isPositive: () => boolean;
isZero: () => boolean;
lessThan: (other: string | number | Long.Long) => boolean;
lt: (other: string | number | Long.Long) => boolean;
lessThanOrEqual: (other: string | number | Long.Long) => boolean;
lte: (other: string | number | Long.Long) => boolean;
modulo: (other: string | number | Long.Long) => Long.Long;
mod: (other: string | number | Long.Long) => Long.Long;
multiply: (multiplier: string | number | Long.Long) => Long.Long;
mul: (multiplier: string | number | Long.Long) => Long.Long;
negate: () => Long.Long;
neg: () => Long.Long;
not: () => Long.Long;
notEquals: (other: string | number | Long.Long) => boolean;
neq: (other: string | number | Long.Long) => boolean;
or: (other: string | number | Long.Long) => Long.Long;
shiftLeft: (numBits: number | Long.Long) => Long.Long;
shl: (numBits: number | Long.Long) => Long.Long;
shiftRight: (numBits: number | Long.Long) => Long.Long;
shr: (numBits: number | Long.Long) => Long.Long;
shiftRightUnsigned: (numBits: number | Long.Long) => Long.Long;
shru: (numBits: number | Long.Long) => Long.Long;
subtract: (subtrahend: string | number | Long.Long) => Long.Long;
sub: (subtrahend: string | number | Long.Long) => Long.Long;
toInt: () => number;
toNumber: () => number;
toBytes: (le?: boolean | undefined) => number[];
toBytesLE: () => number[];
toBytesBE: () => number[];
toSigned: () => Long.Long;
toString: (radix?: number | undefined) => string;
toUnsigned: () => Long.Long;
xor: (other: string | number | Long.Long) => Long.Long;
} & Record, never>) | undefined;
outFlows?: ({
toAddress?: string | undefined;
rate?: string | undefined;
}[] & ({
toAddress?: string | undefined;
rate?: string | undefined;
} & {
toAddress?: string | undefined;
rate?: string | undefined;
} & Record, never>)[] & Record, never>) | undefined;
} & Record, never>>(object: I): EventStreamRecordUpdate;
fromSDK(object: EventStreamRecordUpdateSDKType): EventStreamRecordUpdate;
toSDK(message: EventStreamRecordUpdate): EventStreamRecordUpdateSDKType;
};
export declare const EventForceSettle: {
encode(message: EventForceSettle, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): EventForceSettle;
fromJSON(object: any): EventForceSettle;
toJSON(message: EventForceSettle): unknown;
fromPartial, never>>(object: I): EventForceSettle;
fromSDK(object: EventForceSettleSDKType): EventForceSettle;
toSDK(message: EventForceSettle): EventForceSettleSDKType;
};
export declare const EventDeposit: {
encode(message: EventDeposit, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): EventDeposit;
fromJSON(object: any): EventDeposit;
toJSON(message: EventDeposit): unknown;
fromPartial, never>>(object: I): EventDeposit;
fromSDK(object: EventDepositSDKType): EventDeposit;
toSDK(message: EventDeposit): EventDepositSDKType;
};
export declare const EventWithdraw: {
encode(message: EventWithdraw, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): EventWithdraw;
fromJSON(object: any): EventWithdraw;
toJSON(message: EventWithdraw): unknown;
fromPartial, never>>(object: I): EventWithdraw;
fromSDK(object: EventWithdrawSDKType): EventWithdraw;
toSDK(message: EventWithdraw): EventWithdrawSDKType;
};