import * as _angular_core from '@angular/core';
import { EnvironmentProviders } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';

interface ScReCaptchaSettings {
    v2SiteKey?: string;
    v3SiteKey?: string;
    languageCode?: string;
}
declare function provideScReCaptchaSettings(settings: ScReCaptchaSettings): EnvironmentProviders;

declare class ScScoreReCaptcha {
    private readonly v3SiteKey;
    private readonly scReCaptchaService;
    constructor();
    execute(actionName: string): Promise<string>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScScoreReCaptcha, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<ScScoreReCaptcha>;
}

type CallbackFn = (token: string) => void;
type ExpiredCallbackFn = () => void;
type ErrorCallbackFn = () => void;
declare class ScReCaptchaBase implements ControlValueAccessor {
    protected readonly id: string;
    protected widgetId: string;
    private readonly changeDetectorRef;
    private readonly scReCaptchaService;
    private readonly v2SiteKey;
    readonly siteKeyInput: _angular_core.InputSignal<string>;
    private readonly siteKey;
    readonly tabindex: _angular_core.InputSignal<string>;
    readonly callback: _angular_core.InputSignal<CallbackFn | undefined>;
    readonly expiredCallback: _angular_core.InputSignal<ExpiredCallbackFn | undefined>;
    readonly errorCallback: _angular_core.InputSignal<ErrorCallbackFn | undefined>;
    private readonly value;
    constructor();
    render(): void;
    protected renderWidget(themeOrBadge: 'theme' | 'badge', themeOrBadgeValue: 'dark' | 'light' | 'bottomright' | 'bottomleft' | 'inline', sizeOrInvisible: 'normal' | 'compact' | 'invisible'): void;
    private defaultCallback;
    private defaultExpiredCallback;
    private defaultErrorCallback;
    getResponse(): void;
    reset(): void;
    private setValue;
    writeValue(obj: any): void;
    onChange: any;
    onTouch: any;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScReCaptchaBase, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScReCaptchaBase, never, never, { "siteKeyInput": { "alias": "siteKey"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "callback": { "alias": "callback"; "required": false; "isSignal": true; }; "expiredCallback": { "alias": "expired-callback"; "required": false; "isSignal": true; }; "errorCallback": { "alias": "error-callback"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class ScCheckboxReCaptcha extends ScReCaptchaBase {
    private readonly host;
    readonly theme: _angular_core.InputSignal<"dark" | "light">;
    readonly size: _angular_core.InputSignal<"normal" | "compact">;
    render(): void;
    private isFirstRun;
    private firstTheme;
    constructor();
    reset(): void;
    private updateRecaptchaTheme;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScCheckboxReCaptcha, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScCheckboxReCaptcha, "div[sc-checkbox-re-captcha]", ["scCheckboxReCaptcha"], { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class ScInvisibleReCaptcha extends ScReCaptchaBase {
    readonly badge: _angular_core.InputSignal<"bottomright" | "bottomleft" | "inline">;
    render(): void;
    execute(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScInvisibleReCaptcha, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScInvisibleReCaptcha, "div[sc-invisible-re-captcha], button[sc-invisible-re-captcha]", ["scInvisibleReCaptcha"], { "badge": { "alias": "badge"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

export { ScCheckboxReCaptcha, ScInvisibleReCaptcha, ScScoreReCaptcha, provideScReCaptchaSettings };
