///
import { NoteEncrypted as NativeNoteEncrypted } from '@ironfish/rust-nodejs';
import { Serde } from '../serde';
import { Note } from './note';
export type NoteEncryptedHash = Buffer;
export type SerializedNoteEncryptedHash = Buffer;
export type SerializedNoteEncrypted = Buffer;
export declare class NoteEncrypted {
private readonly noteEncryptedSerialized;
private readonly _noteCommitment;
private noteEncrypted;
private referenceCount;
/**
* Used to record whether the note has already been previously validated, and
* thus does not need to be checked anymore after parsing. Used to speed up
* construction of `NativeNoteEncrypted` in `takeReference`.
*/
private skipValidation;
constructor(noteEncryptedSerialized: Buffer, options?: {
skipValidation?: boolean;
});
static size: number;
serialize(): Buffer;
takeReference(): NativeNoteEncrypted;
returnReference(): void;
decryptNoteForOwner(incomingViewKey: Buffer | string): Note | undefined;
decryptNoteForOwners(incomingViewKeys: Array): Array;
decryptNoteForSpender(outgoingViewKey: Buffer | string): Note | undefined;
hash(): NoteEncryptedHash;
equals(other: NoteEncrypted): boolean;
}
/**
* Serde implementation to convert an encrypted note to its serialized form and back.
*/
export declare class NoteEncryptedSerde implements Serde {
equals(note1: NoteEncrypted, note2: NoteEncrypted): boolean;
serialize(note: NoteEncrypted): SerializedNoteEncrypted;
deserialize(serializedNote: SerializedNoteEncrypted): NoteEncrypted;
}
/**
* Serde implementation to convert an encrypted note's hash to its serialized form and back.
*/
export declare class NoteEncryptedHashSerde implements Serde {
equals(hash1: NoteEncryptedHash, hash2: NoteEncryptedHash): boolean;
serialize(note: NoteEncryptedHash): SerializedNoteEncryptedHash;
deserialize(serializedNote: SerializedNoteEncryptedHash): NoteEncryptedHash;
}
//# sourceMappingURL=noteEncrypted.d.ts.map