import type { IDecodedMessage, IMessage, IRateLimitProof, IRlnMessage } from "@waku/interfaces";
import { RLNInstance } from "./rln.js";
export declare function toRLNSignal(contentTopic: string, msg: IMessage): Uint8Array;
export declare class RlnMessage<T extends IDecodedMessage> implements IRlnMessage {
    private rlnInstance;
    private msg;
    rateLimitProof: IRateLimitProof | undefined;
    pubsubTopic: string;
    version: number;
    constructor(rlnInstance: RLNInstance, msg: T, rateLimitProof: IRateLimitProof | undefined);
    verify(roots: Uint8Array[]): boolean | undefined;
    verifyNoRoot(): boolean | undefined;
    get payload(): Uint8Array;
    get contentTopic(): string;
    get timestamp(): Date | undefined;
    get ephemeral(): boolean | undefined;
    get meta(): Uint8Array | undefined;
    get epoch(): number | undefined;
}
