import { MessageTransaction } from "../message-transaction"; import { HcsDidMessage } from "./hcs-did-message"; import { DidMethodOperation } from "../../did-method-operation"; import { TopicId } from "@hashgraph/sdk"; import { MessageEnvelope } from "../message-envelope"; import { Validator } from "../../../utils/validator"; import { MessageListener } from "../message-listener"; import { Encrypter } from "../message"; /** * The DID document creation, update or deletion transaction. * Builds a correct {@link HcsDidMessage} and send it to HCS DID topic. */ export declare class HcsDidTransaction extends MessageTransaction { private operation; private didDocument; /** * Instantiates a new transaction object from a message that was already prepared. * * @param topicId The HCS DID topic ID where message will be submitted. * @param message The message envelope. */ constructor(message: MessageEnvelope, topicId: TopicId); /** * Instantiates a new transaction object. * * @param operation The operation to be performed on a DID document. * @param topicId The HCS DID topic ID where message will be submitted. */ constructor(operation: DidMethodOperation, topicId: TopicId); /** * Sets a DID document as JSON string that will be submitted to HCS. * * @param didDocument The didDocument to be published. * @return This transaction instance. */ setDidDocument(didDocument: string): HcsDidTransaction; protected validate(validator: Validator): void; protected buildMessage(): MessageEnvelope; protected provideTopicListener(topicIdToListen: TopicId): MessageListener; protected provideMessageEncrypter(encryptionFunction: Encrypter): (input: HcsDidMessage) => HcsDidMessage; }