import { C as Config, W as WidgetProps } from './config-BRFx4nLT.cjs';
import * as react from 'react';
export { solidityEncode } from '@worldcoin/idkit-core/hashing';
export { IVerifyResponse, verifyCloudProof } from '@worldcoin/idkit-core/backend';
import { IDKitConfig, VerificationState, ISuccessResult, AppErrorCodes } from '@worldcoin/idkit-core';
export { IErrorState, ISuccessResult, VerificationLevel, VerificationState } from '@worldcoin/idkit-core';

type HookConfig = Partial<Pick<Config, 'handleVerify' | 'onSuccess'>>;
declare const useIDKit: ({ handleVerify, onSuccess }?: HookConfig) => {
    open: boolean;
    setOpen: (open: boolean) => void;
};

declare const _default: react.NamedExoticComponent<WidgetProps>;

type UseSessionConfig = IDKitConfig;
type UseSessionResult = {
    /** The current verification state */
    status: VerificationState;
    /** The QR code URI that users can scan to verify */
    sessionURI: string | null;
    /** The verification result if successful */
    result: ISuccessResult | null;
    /** Error code if verification failed */
    errorCode: AppErrorCodes | null;
    /** Function to reset the session and start over */
    reset: () => void;
};
/**
 * A beginner-friendly React hook for World ID verification sessions.
 *
 * This hook automatically:
 * - Creates a verification session
 * - Generates a QR code URI for scanning
 * - Polls for verification updates
 * - Stops polling when verification completes or fails
 *
 * @param config - The World ID configuration object
 * @returns Session state and controls
 *
 * @example
 * ```tsx
 * const { status, sessionURI, result, errorCode } = useSession({
 *   app_id: 'app_staging_12345',
 *   action: 'login',
 *   signal: 'user_123'
 * })
 *
 * if (status === VerificationState.WaitingForConnection) {
 *   return <QRCodeSVG value={sessionURI} />
 * }
 * ```
 */
declare function useSession(config: UseSessionConfig): UseSessionResult;

export { Config, _default as IDKitWidget, type UseSessionConfig, type UseSessionResult, WidgetProps, useIDKit, useSession };
