import { IDKitConfig, VerificationState, ISuccessResult, AppErrorCodes } from '@worldcoin/idkit-core';
import { Config } from '@worldcoin/idkit';

type SessionStatus = {
    state: VerificationState;
    result: ISuccessResult | null;
    errorCode: AppErrorCodes | null;
    sessionURI: string | null;
};
declare const IDKitSession: {
    create: (config: IDKitConfig) => Promise<void>;
    pollStatus: () => Promise<SessionStatus>;
    getURI: () => string | null;
    destroy: () => void;
    readonly isActive: boolean;
};

declare const IDKit: {
    init: (config: Config) => void;
    update: (config: Config) => void;
    open: () => Promise<unknown>;
    close: () => Promise<unknown>;
    reset: () => void;
    readonly isInitialized: boolean;
};
declare global {
    interface Window {
        IDKit: typeof IDKit;
        IDKitSession: typeof IDKitSession;
    }
}
