import _m0 from "protobufjs/minimal";
import { AccountID, Key } from "./basic_types";
import { Duration } from "./duration";
import { Timestamp } from "./timestamp";
export declare const protobufPackage = "proto";
/**
* Change properties for the given account. Any null field is ignored (left unchanged). This
* transaction must be signed by the existing key for this account. If the transaction is changing
* the key field, then the transaction must be signed by both the old key (from before the change)
* and the new key. The old key must sign for security. The new key must sign as a safeguard to
* avoid accidentally changing to an invalid key, and then having no way to recover.
* If the update transaction sets the auto_renew_account field to anything other
* than the sentinel 0.0.0, the key of the referenced account must sign.
*/
export interface CryptoUpdateTransactionBody {
/** The account ID which is being updated in this transaction */
accountIDToUpdate: AccountID | undefined;
/** The new key */
key: Key | undefined;
/**
* [Deprecated] ID of the account to which this account is proxy staked. If proxyAccountID is null, or is an
* invalid account, or is an account that isn't a node, then this account is automatically proxy
* staked to a node chosen by the network, but without earning payments. If the proxyAccountID
* account refuses to accept proxy staking , or if it is not currently running a node, then it
* will behave as if proxyAccountID was null.
*
* @deprecated
*/
proxyAccountID: AccountID | undefined;
/**
* [Deprecated]. Payments earned from proxy staking are shared between the node and this
* account, with proxyFraction / 10000 going to this account
*
* @deprecated
*/
proxyFraction: number;
sendRecordThresholdField?: {
$case: "sendRecordThreshold";
sendRecordThreshold: number;
} | {
$case: "sendRecordThresholdWrapper";
sendRecordThresholdWrapper: number | undefined;
} | undefined;
receiveRecordThresholdField?: {
$case: "receiveRecordThreshold";
receiveRecordThreshold: number;
} | {
$case: "receiveRecordThresholdWrapper";
receiveRecordThresholdWrapper: number | undefined;
} | undefined;
/**
* The duration in which it will automatically extend the expiration period. If it doesn't have
* enough balance, it extends as long as possible. If it is empty when it expires, then it is
* deleted.
*/
autoRenewPeriod: Duration | undefined;
/** The new expiration time to extend to (ignored if equal to or before the current one) */
expirationTime: Timestamp | undefined;
receiverSigRequiredField?: {
$case: "receiverSigRequired";
receiverSigRequired: boolean;
} | {
$case: "receiverSigRequiredWrapper";
receiverSigRequiredWrapper: boolean | undefined;
} | undefined;
/** If set, the new memo to be associated with the account (UTF-8 encoding max 100 bytes) */
memo: string | undefined;
/**
* The maximum number of tokens that an Account can be implicitly associated with. Up to a 1000
* including implicit and explicit associations.
*/
maxAutomaticTokenAssociations: number | undefined;
stakedId?: {
$case: "stakedAccountId";
stakedAccountId: AccountID;
} | {
$case: "stakedNodeId";
stakedNodeId: number;
} | undefined;
/** If true, the account declines receiving a staking reward. The default value is false. */
declineReward: boolean | undefined;
}
export declare const CryptoUpdateTransactionBody: {
encode(message: CryptoUpdateTransactionBody, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): CryptoUpdateTransactionBody;
fromJSON(object: any): CryptoUpdateTransactionBody;
toJSON(message: CryptoUpdateTransactionBody): unknown;
create(base?: DeepPartial): CryptoUpdateTransactionBody;
fromPartial(object: DeepPartial): CryptoUpdateTransactionBody;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {
$case: string;
} ? {
[K in keyof Omit]?: DeepPartial;
} & {
$case: T["$case"];
} : T extends {} ? {
[K in keyof T]?: DeepPartial;
} : Partial;
export {};
//# sourceMappingURL=crypto_update.d.ts.map