import type { Ref } from 'vue-demi';
import type { WidgetID } from '../script-manager/common';
import type { RecaptchaV2OptionsInput } from './challenge-v2';
import { RecaptchaV2State } from './challenge-v2';
interface Emits {
    (event: 'load', widgetID: WidgetID): void;
    (event: 'error', error: Error): void;
    (event: 'expired', widgetID: WidgetID): void;
    (event: 'success', response: string): void;
    (event: 'update:widgetId', widgetID: WidgetID): void;
    (event: 'update:modelValue', response: string | null): void;
}
export interface UseComponentV2Return {
    root: Ref<HTMLElement | null>;
    widgetID: Ref<WidgetID | null>;
    state: Ref<RecaptchaV2State>;
    isError: Ref<boolean>;
    isExpired: Ref<boolean>;
    isVerified: Ref<boolean>;
    reset: () => void;
    execute: () => void;
}
export declare function useComponentV2(options: RecaptchaV2OptionsInput | undefined, modelValue: Ref<string | null | undefined>, emit: Emits): {
    root: Ref<Element | undefined>;
    widgetID: Ref<WidgetID | undefined>;
    state: Ref<RecaptchaV2State>;
    isError: import("vue-demi").ComputedRef<boolean>;
    isExpired: import("vue-demi").ComputedRef<boolean>;
    isVerified: import("vue-demi").ComputedRef<boolean>;
    reset: () => void;
    execute: () => void;
};
export {};
