export interface TurnstileProps { siteKey: string; onVerify?: (token: string) => void; onError?: (error: unknown) => void; onExpire?: () => void; onLoad?: () => void; onBeforeInteractive?: () => void; onAfterInteractive?: () => void; onUnsupported?: () => void; onTimeout?: () => void; action?: string; id?: string; className?: string; theme?: "light" | "dark" | "auto"; tabIndex?: number; responseField?: boolean; responseFieldName?: string; size?: "normal" | "compact" | "flexible"; retry?: "auto" | "never"; retryInterval?: number; refreshExpired?: "auto" | "manual" | "never"; refreshTimeout?: "auto" | "manual" | "never"; appearance?: "always" | "execute" | "interaction-only"; execution?: "render" | "execute"; cData?: string; language?: string; sandbox?: "pass" | "block" | "pass-invisible" | "block-invisible" | boolean; feedbackEnabled?: boolean; } export interface TurnstileValidateOptions { token: string; secretKey: string; remoteip?: string; idempotencyKey?: string; sandbox?: "pass" | "fail" | "error" | boolean; } export interface TurnstileValidateResponse { success: boolean; challenge_ts?: string; hostname?: string; error_codes?: string[]; action?: string; cdata?: string; } export type TurnstileTheme = "light" | "dark" | "auto"; export type TurnstileSize = "normal" | "compact" | "flexible"; export type TurnstileAppearance = "always" | "execute" | "interaction-only"; export type TurnstileExecution = "render" | "execute"; export type TurnstileRetry = "auto" | "never"; export type TurnstileRefresh = "auto" | "manual" | "never"; export type TurnstileSandbox = "pass" | "block" | "pass-invisible" | "block-invisible" | boolean; export type TurnstileServerSandbox = "pass" | "fail" | "error" | boolean; export declare const TURNSTILE_CONSTANTS: { readonly DEFAULT_THEME: "auto"; readonly DEFAULT_SIZE: "flexible"; readonly DEFAULT_APPEARANCE: "always"; readonly DEFAULT_EXECUTION: "render"; readonly DEFAULT_RETRY: "auto"; readonly DEFAULT_RETRY_INTERVAL: 8000; readonly DEFAULT_REFRESH_EXPIRED: "auto"; readonly DEFAULT_REFRESH_TIMEOUT: "auto"; readonly DEFAULT_RESPONSE_FIELD: true; readonly DEFAULT_RESPONSE_FIELD_NAME: "cf-turnstile-response"; readonly DEFAULT_FEEDBACK_ENABLED: true; readonly DEFAULT_ID: "turnstile-widget"; readonly SANDBOX_KEYS: { readonly PASS: "1x00000000000000000000AA"; readonly BLOCK: "2x00000000000000000000AB"; readonly PASS_INVISIBLE: "1x00000000000000000000BB"; readonly BLOCK_INVISIBLE: "2x00000000000000000000BB"; }; readonly SERVER_SANDBOX_KEYS: { readonly PASS: "1x0000000000000000000000000000000AA"; readonly FAIL: "2x0000000000000000000000000000000AA"; readonly ERROR: "3x0000000000000000000000000000000AA"; }; readonly API_ENDPOINT: "https://challenges.cloudflare.com/turnstile/v0/siteverify"; readonly SCRIPT_URL: "https://challenges.cloudflare.com/turnstile/v0/api.js"; }; export declare const TURNSTILE_ERROR_CODES: { readonly MISSING_INPUT_SECRET: "missing-input-secret"; readonly INVALID_INPUT_SECRET: "invalid-input-secret"; readonly MISSING_INPUT_RESPONSE: "missing-input-response"; readonly INVALID_INPUT_RESPONSE: "invalid-input-response"; readonly BAD_REQUEST: "bad-request"; readonly TIMEOUT_OR_DUPLICATE: "timeout-or-duplicate"; readonly INTERNAL_ERROR: "internal-error"; }; export type TurnstileErrorCode = (typeof TURNSTILE_ERROR_CODES)[keyof typeof TURNSTILE_ERROR_CODES]; export interface TurnstileError { code: TurnstileErrorCode; message: string; }