import { NostrEvent, NDKEvent } from '@nostr-dev-kit/ndk';

interface NWCOptions {
    relayUrl: string;
    walletPubkey: string;
    secret: string;
}
declare class NWC {
    relayUrl: string;
    secret: string;
    walletPubkey: string;
    options: NWCOptions;
    subscribers: Record<string, (payload: unknown) => void>;
    static parseWalletConnectUrl(walletConnectUrl: string): NWCOptions;
    constructor(nostrWalletConnectUrl: string);
    makeNWCRequestEvent(invoice: string): Promise<NostrEvent>;
    decryptContent(encryptedContent: string): Promise<any>;
}

declare class PaymentRequestEvent extends NDKEvent {
    invoice: string;
    nwc: NWC;
    event: NDKEvent;
    private constructor();
    static create(nwcOrUrl: NWC | string, invoice: string): Promise<PaymentRequestEvent>;
    get responseFilter(): {
        kinds: number[];
        tags: string[][];
    };
    getResponseFilter(): {
        kinds: number[];
        tags: string[][];
    };
    get relayToListenTo(): string;
}

export { NWC, PaymentRequestEvent };
