import type { Codec, DecodeOptions } from 'protons-runtime';
import type { Uint8ArrayList } from 'uint8arraylist';
export interface IpnsEntry {
    value?: Uint8Array;
    signatureV1?: Uint8Array;
    validityType?: IpnsEntry.ValidityType;
    validity?: Uint8Array;
    sequence?: bigint;
    ttl?: bigint;
    pubKey?: Uint8Array;
    signatureV2?: Uint8Array;
    data?: Uint8Array;
}
export declare namespace IpnsEntry {
    enum ValidityType {
        EOL = "EOL"
    }
    namespace ValidityType {
        const codec: () => Codec<ValidityType>;
    }
    const codec: () => Codec<IpnsEntry>;
    interface IpnsEntryValueFieldEvent {
        field: '$.value';
        value: Uint8Array;
    }
    interface IpnsEntrySignatureV1FieldEvent {
        field: '$.signatureV1';
        value: Uint8Array;
    }
    interface IpnsEntryValidityTypeFieldEvent {
        field: '$.validityType';
        value: IpnsEntry.ValidityType;
    }
    interface IpnsEntryValidityFieldEvent {
        field: '$.validity';
        value: Uint8Array;
    }
    interface IpnsEntrySequenceFieldEvent {
        field: '$.sequence';
        value: bigint;
    }
    interface IpnsEntryTtlFieldEvent {
        field: '$.ttl';
        value: bigint;
    }
    interface IpnsEntryPubKeyFieldEvent {
        field: '$.pubKey';
        value: Uint8Array;
    }
    interface IpnsEntrySignatureV2FieldEvent {
        field: '$.signatureV2';
        value: Uint8Array;
    }
    interface IpnsEntryDataFieldEvent {
        field: '$.data';
        value: Uint8Array;
    }
    function encode(obj: Partial<IpnsEntry>): Uint8Array;
    function decode(buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<IpnsEntry>): IpnsEntry;
    function stream(buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<IpnsEntry>): Generator<IpnsEntryValueFieldEvent | IpnsEntrySignatureV1FieldEvent | IpnsEntryValidityTypeFieldEvent | IpnsEntryValidityFieldEvent | IpnsEntrySequenceFieldEvent | IpnsEntryTtlFieldEvent | IpnsEntryPubKeyFieldEvent | IpnsEntrySignatureV2FieldEvent | IpnsEntryDataFieldEvent>;
}
//# sourceMappingURL=ipns.d.ts.map