import Script from 'next/script'; import type { OpenpanelEventOptions, OpenpanelOptions, PostEventPayload, UpdateProfilePayload, } from '@openpanel/web'; export * from '@openpanel/web'; const CDN_URL = 'https://openpanel.dev/op.js'; declare global { interface Window { op: { q?: [string, ...any[]]; (method: OpenpanelMethods, ...args: any[]): void; }; } } type OpenpanelMethods = | 'ctor' | 'event' | 'setProfile' | 'setProfileId' | 'increment' | 'decrement' | 'clear'; declare global { interface window { op: { q?: [string, ...any[]]; (method: OpenpanelMethods, ...args: any[]): void; }; } } type OpenpanelProviderProps = OpenpanelOptions & { profileId?: string; cdnUrl?: string; }; export function OpenpanelProvider({ profileId, cdnUrl, ...options }: OpenpanelProviderProps) { const events: { name: OpenpanelMethods; value: unknown }[] = [ { name: 'ctor', value: options }, ]; if (profileId) { events.push({ name: 'setProfileId', value: profileId }); } return ( <>