import _m0 from "protobufjs/minimal"; import { AccountID, ContractID } from "./basic_types"; export declare const protobufPackage = "proto"; /** * At consensus, marks a contract as deleted and transfers its remaining hBars, if any, to a * designated receiver. After a contract is deleted, it can no longer be called. * * If the target contract is immutable (that is, was created without an admin key), then this * transaction resolves to MODIFYING_IMMUTABLE_CONTRACT. * * --- Signing Requirements --- * 1. The admin key of the target contract must sign. * 2. If the transfer account or contract has receiverSigRequired, its associated key must also sign */ export interface ContractDeleteTransactionBody { /** The id of the contract to be deleted */ contractID: ContractID | undefined; obtainers?: { $case: "transferAccountID"; transferAccountID: AccountID; } | { $case: "transferContractID"; transferContractID: ContractID; } | undefined; /** * If set to true, means this is a "synthetic" system transaction being used to * alert mirror nodes that the contract is being permanently removed from the ledger. * IMPORTANT: User transactions cannot set this field to true, as permanent * removal is always managed by the ledger itself. Any ContractDeleteTransactionBody * submitted to HAPI with permanent_removal=true will be rejected with precheck status * PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION. */ permanentRemoval: boolean; } export declare const ContractDeleteTransactionBody: { encode(message: ContractDeleteTransactionBody, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ContractDeleteTransactionBody; fromJSON(object: any): ContractDeleteTransactionBody; toJSON(message: ContractDeleteTransactionBody): unknown; create(base?: DeepPartial): ContractDeleteTransactionBody; fromPartial(object: DeepPartial): ContractDeleteTransactionBody; }; 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=contract_delete.d.ts.map