import { FC } from 'react'; type Subscription = { event: 'challenge-visible'; } | { event: 'challenge-hidden'; } | { event: 'network-error'; } | { event: 'token-expired'; } | { event: 'javascript-error'; data: JavascriptErrorData; } | { event: 'success'; data: string; }; type SubscribeEvent = Subscription['event']; type WidgetId = number; type Token = string; type Unsubscribe = () => void; type Theme = 'light' | 'dark' | 'auto'; type RenderParams = { sitekey: string; callback?: (token: string) => void; hl?: 'ru' | 'en' | 'be' | 'kk' | 'tt' | 'uk' | 'uz' | 'tr'; invisible?: boolean; test?: boolean; webview?: boolean; theme?: Theme; }; type JavascriptErrorData = { filename: string; message: string; col: number; line: number; }; type SmartCaptchaApi = { render: (container: HTMLElement | string, params: RenderParams) => WidgetId; reset: (widgetId?: WidgetId) => void; destroy: (widgetId?: WidgetId) => void; execute: (widgetId?: WidgetId) => void; executePromise: (widgetId?: WidgetId) => Promise; showError: (widgetId?: WidgetId) => void; subscribe: (widgetId: WidgetId, event: SubscribeEvent, fn: (...args: unknown[]) => void) => Unsubscribe; getResponse: (widgetId?: WidgetId) => string | undefined; setTheme: (widgetId: WidgetId, theme: Theme) => void; _origin: string; _test: string; _webview: string; }; type SubscribeMethods = { onChallengeVisible?: () => void; onChallengeHidden?: () => void; onNetworkError?: () => void; onTokenExpired?: () => void; onJavascriptError?: (error: JavascriptErrorData) => void; onSuccess?: (token: Token) => void; }; type SmartCaptchaPropsBase = Omit & SubscribeMethods & { language?: RenderParams['hl']; host?: string; theme?: Theme; }; type SmartCaptchaProps = SmartCaptchaPropsBase; declare const SmartCaptcha: FC; type InvisibleSmartCaptchaProps = SmartCaptchaPropsBase & { shieldPosition?: 'top-left' | 'center-left' | 'bottom-left' | 'top-right' | 'center-right' | 'bottom-right'; hideShield?: boolean; visible?: boolean; }; declare const InvisibleSmartCaptcha: FC; declare function useSmartCaptchaLoader(host?: string, onJavascriptError?: SubscribeMethods['onJavascriptError']): SmartCaptchaApi | undefined; export { InvisibleSmartCaptcha, InvisibleSmartCaptchaProps, SmartCaptcha, SmartCaptchaProps, useSmartCaptchaLoader };