export type UnsignedNostrEvent = { kind: number; created_at: number; tags: string[][]; content: string; }; export type SignedNostrEvent = UnsignedNostrEvent & { id: string; pubkey: string; sig: string; }; export type Nip07Provider = { getPublicKey(): Promise; signEvent(event: UnsignedNostrEvent): Promise; }; declare global { interface Window { nostr?: Nip07Provider; } } export function hasNip07Signer(): boolean { return typeof window !== "undefined" && !!window.nostr; }