@hauser1993/kyc-sdk
Version:
Your custom version of Ballerine web UI SDK - an open-source infrastructure for user identity and risk management. Compose verification processes for any vertical and geography using modular building blocks, components, and 3rd party integrations.
142 lines • 4.55 kB
TypeScript
import { IStepConfiguration } from '../lib/contexts/configuration';
import { ConfigSettings } from '../lib/contexts/configuration/types';
import { TranslationType } from '../lib/contexts/translation';
import { INavigationButtons } from '../lib/molecules/NavigationButtons';
import { IDocumentOptions } from '../lib/organisms/DocumentOptions';
import { ICSSProperties } from '../lib/services/css-manager';
import { IFlowCompletePayload, IFlowErrorPayload, IFlowExitPayload, IFlowNavigationUpdatePayload } from '../lib/services/flow-event-bus/interfaces';
export interface FlowsGeneralTheme {
progress?: boolean;
borderRadius?: string;
padding?: string;
colors?: {
primary?: string;
secondary?: string;
text?: string;
danger?: string;
};
fonts?: {
name?: string;
link: string;
weight?: number[];
};
}
interface FlowsUIConfig {
uiPack?: string;
general?: FlowsGeneralTheme;
components?: {
container?: ICSSProperties;
button?: ICSSProperties;
buttonWithIcon?: ICSSProperties;
iconButton?: ICSSProperties;
layout?: ICSSProperties;
photo?: ICSSProperties;
title?: ICSSProperties;
paragraph?: ICSSProperties;
navigationButtons?: INavigationButtons;
documentOptions?: IDocumentOptions;
image?: ICSSProperties;
cameraButton?: ICSSProperties;
videoContainer?: ICSSProperties;
input?: ICSSProperties;
loader?: ICSSProperties;
errorText?: ICSSProperties;
overlay?: ICSSProperties;
};
flows?: {
[key: string]: {
steps?: RecursivePartial<IStepConfiguration>[];
userType?: string;
mobileNativeCamera?: boolean;
syncFlow?: boolean;
useFinalQueryParams?: boolean;
firstScreenBackButton?: boolean;
showCloseButton?: boolean;
callbacks?: FlowsEventsConfig;
};
};
settings?: ConfigSettings;
}
export interface MetricsConfig {
enabled?: boolean;
}
export interface FlowsEventsConfig {
/**
*
* @param payload - only available in synchronous flows.
*/
onFlowComplete?: (payload?: IFlowCompletePayload) => void;
onFlowExit?: (payload: IFlowExitPayload) => void;
onFlowError?: (payload: IFlowErrorPayload) => void;
onFlowNavigationUpdate?: (payload: IFlowNavigationUpdatePayload) => void;
}
export interface EndUserInfo {
firstName?: string;
lastName?: string;
dateOfBirth?: string;
id: string;
type?: string;
phone?: string;
email?: string;
language?: string;
endUserMetadata?: Record<string, string>;
}
export interface FlowsBackendConfigEndpoints {
startVerification?: string;
getVerificationStatus?: string;
processStepData?: string;
getConfig?: string;
uploadFile?: string;
updateContext?: string;
}
export interface FlowsBackendConfig {
baseUrl?: string;
auth?: {
method?: 'jwt' | 'basic' | 'cookie';
authorizationHeader?: string;
};
endpoints?: FlowsBackendConfigEndpoints;
}
export interface FlowsInitOptions {
version?: string;
uiConfig?: Partial<FlowsUIConfig>;
metricsConfig?: Partial<MetricsConfig>;
endUserInfo: EndUserInfo;
backendConfig?: FlowsBackendConfig;
translations?: FlowsTranslations;
}
export interface IFlowsMountOptions {
/**
* @description The object key of the flow to be rendered.
*/
flowName: string;
/**
* @description A boolean to decide where to mount the flow - if true, the flow will be mounted in the body element.
*
* @default false
*/
useModal?: boolean;
/**
* @description Required if useModal is not used or is set to false. The string id attribute of the element to mount the flow in.
*/
elementId?: string;
callbacks?: FlowsEventsConfig;
/**
* @description A JWT token to use in the Authorization header. Requires {@link FlowsInitOptions.backendConfig.auth} method to be set as 'jwt'
*/
jwt?: string;
}
export interface FlowsTranslations {
overrides?: Partial<TranslationType>;
remoteUrl?: string;
}
export interface BallerineSDKFlows {
init: (config: FlowsInitOptions) => Promise<void>;
mount: (config: IFlowsMountOptions) => void;
setConfig: (config: FlowsInitOptions) => Promise<void>;
}
export interface BallerineSDK {
Flows: BallerineSDKFlows;
}
export {};
//# sourceMappingURL=BallerineSDK.d.ts.map