interface Turnstile { render: (element: HTMLElement, options: TurnstileOptions) => string; remove: (widgetId: string) => void; } interface TurnstileOptions { sitekey: string; callback: (token: string) => void; 'refresh-expired'?: 'auto' | 'manual'; size?: 'invisible' | 'normal' | 'compact'; 'error-callback'?: (error: unknown) => void; 'expired-callback'?: () => void; theme?: 'light' | 'dark' | 'auto'; language?: string; } declare global { interface Window { turnstile?: Turnstile; } } export type { Turnstile, TurnstileOptions };