export type WidgetId = string;
export type ElementId = string;
export interface TurnstileObject {
    ready: (callback: () => any) => void;
    implicitRender: () => void;
    execute: (container?: WidgetId | HTMLElement | ElementId, parameters?: RenderParameters) => void;
    render(container: HTMLElement | ElementId, parameters?: RenderParameters): string;
    reset(widget?: WidgetId | HTMLElement | ElementId): void;
    remove(widget?: WidgetId | HTMLElement | ElementId): void;
    getResponse(widget?: WidgetId | HTMLElement | ElementId): string;
    isExpired(widget?: WidgetId | HTMLElement | ElementId): boolean;
}
export type TurnstileOptions = RenderParameters;
export interface RenderParameters {
    sitekey: string;
    action?: string;
    cData?: string;
    callback?: (token: string, preClearanceObtained: boolean) => void;
    "error-callback"?: (errorCode: string) => void;
    execution?: "render" | "execute";
    "expired-callback"?: (token: string) => void;
    "before-interactive-callback"?: () => void;
    "after-interactive-callback"?: () => void;
    "unsupported-callback"?: () => void;
    "timeout-callback"?: () => void;
    theme?: "light" | "dark" | "auto";
    language?: SupportedLanguages | "auto" | string;
    tabindex?: number;
    "response-field"?: boolean;
    "response-field-name"?: string;
    size?: "normal" | "flexible" | "compact" | "invisible";
    retry?: "auto" | "never";
    "retry-interval"?: number;
    "refresh-expired"?: "auto" | "manual" | "never";
    appearance?: "always" | "execute" | "interaction-only";
    chlPageData?: string;
}
export type SupportedLanguages = "ar-eg" | "ar" | "bg-bg" | "bg" | "cs-cz" | "cs" | "da-dk" | "da" | "de-de" | "de" | "en-us" | "en" | "el-gr" | "el" | "es-es" | "es" | "fa-ir" | "fa" | "fi-fi" | "fi" | "fr" | "he-il" | "he" | "hi-in" | "hi" | "hr-hr" | "hr" | "hu-hu" | "hu" | "id-id" | "id" | "it-it" | "it" | "ja-jp" | "ja" | "ko-kr" | "ko" | "lt-lt" | "lt" | "ms-my" | "ms" | "nl-nl" | "nl" | "no-no" | "no" | "pl-pl" | "pl" | "pt-br" | "pt" | "ro-ro" | "ro" | "ru-ru" | "ru" | "sk-sk" | "sk" | "sl-si" | "sl" | "sv-se" | "sv" | "sr-ba" | "sr" | "tlh" | "tl-ph" | "tl" | "th-th" | "th" | "tr-tr" | "tr" | "uk-ua" | "uk" | "vi-vn" | "vi" | "zh-cn" | "zh-tw" | "zh";
declare global {
    interface Window {
        turnstile: TurnstileObject;
    }
}
