import { ElementRef, NgZone, EventEmitter, OnDestroy } from '@angular/core';
import { TurnstileOptions } from './interfaces/turnstile-options';
import * as i0 from "@angular/core";
declare global {
    interface Window {
        onloadTurnstileCallback: () => void;
        turnstile: {
            render: (idOrContainer: string | HTMLElement, options: TurnstileOptions) => string;
            reset: (widgetIdOrContainer: string | HTMLElement) => void;
            getResponse: (widgetIdOrContainer: string | HTMLElement) => string | undefined;
            remove: (widgetIdOrContainer: string | HTMLElement) => void;
        };
    }
}
type SupportedVersion = '0';
export declare class NgxTurnstileComponent implements OnDestroy {
    private elementRef;
    private zone;
    private document;
    private platformId;
    siteKey: string;
    action?: string;
    cData?: string;
    theme?: 'light' | 'dark' | 'auto';
    language?: string;
    version: SupportedVersion;
    tabIndex?: number;
    appearance?: 'always' | 'execute' | 'interaction-only';
    execution?: 'render' | 'execute';
    retry?: 'never' | 'auto';
    retryInterval?: number;
    refreshExpired?: 'auto' | 'manual' | 'never';
    refreshTimeout?: 'auto' | 'manual' | 'never';
    size?: 'normal' | 'flexible' | 'compact';
    responseField?: boolean;
    responseFieldName?: string;
    feedbackEnabled?: boolean;
    offlabelShowPrivacy?: boolean;
    offlabelShowHelp?: boolean;
    resolved: EventEmitter<string | null>;
    errored: EventEmitter<string | null>;
    beforeInteractive: EventEmitter<void>;
    afterInteractive: EventEmitter<void>;
    unsupported: EventEmitter<void>;
    timeout: EventEmitter<void>;
    private widgetId;
    /** Whether the Cloudflare Turnstile script has finished loading. */
    scriptLoaded: import("@angular/core").WritableSignal<boolean>;
    /** Whether a widget is currently rendered. Clients can watch this signal. */
    widgetLoaded: import("@angular/core").Signal<boolean>;
    private onScriptLoad;
    constructor(elementRef: ElementRef<HTMLElement>, zone: NgZone, document: Document, platformId: Object);
    private _getCloudflareTurnstileUrl;
    private loadScript;
    createWidget(): void;
    reset(): void;
    remove(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxTurnstileComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxTurnstileComponent, "ngx-turnstile", ["ngx-turnstile"], { "siteKey": { "alias": "siteKey"; "required": false; }; "action": { "alias": "action"; "required": false; }; "cData": { "alias": "cData"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "language": { "alias": "language"; "required": false; }; "version": { "alias": "version"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "execution": { "alias": "execution"; "required": false; }; "retry": { "alias": "retry"; "required": false; }; "retryInterval": { "alias": "retryInterval"; "required": false; }; "refreshExpired": { "alias": "refreshExpired"; "required": false; }; "refreshTimeout": { "alias": "refreshTimeout"; "required": false; }; "size": { "alias": "size"; "required": false; }; "responseField": { "alias": "responseField"; "required": false; }; "responseFieldName": { "alias": "responseFieldName"; "required": false; }; "feedbackEnabled": { "alias": "feedbackEnabled"; "required": false; }; "offlabelShowPrivacy": { "alias": "offlabelShowPrivacy"; "required": false; }; "offlabelShowHelp": { "alias": "offlabelShowHelp"; "required": false; }; }, { "resolved": "resolved"; "errored": "errored"; "beforeInteractive": "beforeInteractive"; "afterInteractive": "afterInteractive"; "unsupported": "unsupported"; "timeout": "timeout"; }, never, never, true, never>;
}
export {};
