UNPKG

@quadible/web-sdk

Version:

The web sdk for Quadible's behavioral authentication service.

17 lines (16 loc) 1.04 kB
import { MaybePromise } from './async'; export type Source<TOptions, TValue> = (options: TOptions) => MaybePromise<TValue | (() => MaybePromise<TValue>)>; export type UnknownSources<TOptions> = Record<string, Source<TOptions, unknown>>; export type SourceValue<TSource extends Source<any, any>> = TSource extends Source<any, infer T> ? T : never; export type Component<T> = ({ value: T; } | { error: unknown; }) & { d: number; }; export type SourcesToComponents<TSources extends UnknownSources<any>> = { [K in keyof TSources]: Component<SourceValue<TSources[K]>>; }; export declare function loadSource<TOptions, TValue>(source: Source<TOptions, TValue>, sourceOptions: TOptions): () => Promise<Component<TValue>>; export declare function loadSources<TSourceOptions, TSources extends UnknownSources<TSourceOptions>, TExclude extends string>(sources: TSources, sourceOptions: TSourceOptions, excludeSources: readonly TExclude[], loopReleaseInterval?: number): () => Promise<Omit<SourcesToComponents<TSources>, TExclude>>;