vec-idp-web-sdk
Version:
VECU Identity Verification Web SDK - A secure, easy-to-integrate identity verification solution
72 lines • 2.88 kB
TypeScript
import { APIClient } from './APIClient';
import { EventEmitter } from './EventEmitter';
import { ProviderRegistry } from './ProviderRegistry';
import { ProviderLoader } from './ProviderLoader';
import { EventForwarder } from './EventForwarder';
import { Logger } from '@/utils/logger';
import { type DeploymentStage, ProviderKeyResolver, ApiUrlResolver } from '@/config/providerKeys';
import type { IVerificationResult, ICustomerInfo } from '@/types';
import { type IAddressData } from '@/components/AddressConfirmation';
interface IAddressConfirmationOptions {
enabled?: boolean;
addressData?: IAddressData;
fetchAddress?: (sessionId: string) => Promise<IAddressData>;
onConfirm?: (sessionId: string) => void;
onDispute?: (sessionId: string) => void;
}
interface ILaunchOptions {
onProgress?: (event: {
step: string;
percentage: number;
message?: string;
}) => void;
onSuccess?: (result: IVerificationResult) => void;
onError?: (error: Error) => void;
provider?: string;
deploymentStage?: DeploymentStage;
mode?: 'modal' | 'embedded';
theme?: Record<string, unknown>;
language?: string;
config?: Record<string, unknown>;
addressConfirmation?: IAddressConfirmationOptions;
verificationId?: string;
}
interface IVerificationOptions extends Omit<ILaunchOptions, 'provider'> {
customerInfo: ICustomerInfo;
referenceId?: string;
}
export interface ISDKConfig {
apiUrl: string;
timeout?: number;
maxRetries?: number;
logLevel?: 'debug' | 'info' | 'warn' | 'error';
debug?: boolean;
enableDirectAPI?: boolean;
deploymentStage?: DeploymentStage;
bearerToken?: string;
apiEndpoints?: {
startVerification?: string;
};
}
interface ISDKDependencies {
apiClient?: APIClient;
eventEmitter?: EventEmitter;
providerRegistry?: ProviderRegistry;
providerLoader?: ProviderLoader;
eventForwarder?: EventForwarder;
logger?: Logger;
keyResolver?: ProviderKeyResolver;
apiUrlResolver?: typeof ApiUrlResolver;
}
export declare function createVecuIDVSDK(config?: ISDKConfig, dependencies?: ISDKDependencies): VecuIDVSecureSDK;
export type { ILaunchOptions, IAddressConfirmationOptions, IAddressData };
export type VecuIDVSecureSDK = {
launch: (transactionToken: string, containerSelector: string | HTMLElement, options?: ILaunchOptions) => Promise<() => void>;
startVerificationWithCustomer: (containerSelector: string | HTMLElement, options: IVerificationOptions) => Promise<() => void>;
updateConfig: (newConfig: Partial<ISDKConfig>) => void;
on: (event: string, handler: (event: unknown) => void) => void;
off: (event: string, handler: (event: unknown) => void) => void;
once: (event: string, handler: (event: unknown) => void) => void;
destroy: () => void;
};
//# sourceMappingURL=VecuIDV.d.ts.map