*/ public function getFrontendConfig(string $type, string $siteKey): array; /** * Validate CAPTCHA credentials * * @param string $siteKey The site key * @param string $secretKey The secret key * @return array{success: bool, message: string} */ public function validateCredentials(string $siteKey, string $secretKey): array; /** * Check if the CAPTCHA service is configured * * @return bool */ public function isConfigured(): bool; /** * Get the site key from settings * * @return string */ public function getSiteKey(): string; /** * Get the CAPTCHA type from settings * * @return string */ public function getType(): string; /** * Validate form submission with CAPTCHA * * @param array $submissionData The form submission data * @param array $formFields The form field objects * @return bool * @throws ForbiddenException */ public function validateFormSubmission(array $submissionData, array $formFields): bool; /** * Validate settings for this CAPTCHA provider * * @param array $settings The settings to validate * @return array{success: bool, message: string} */ public function validateSettings(array $settings): array; }