import { TruliooClient } from "./client.js"; import type { AuthorizeRequest, DevicePayloadSubmission, DeviceSeedRequest, ChallengeRequest, DeviceEventResponse, DeviceInsightResponse, SessionConfigurationRequest, SessionConfigurationResponse } from "./types.js"; export interface DeviceSdkConfiguration { credentialId: string; environment?: string; behaviorEnabled?: boolean; flow?: string; flowId?: string; userId?: string; } export interface DeviceSdkSubmitResult { eventId: string; insights?: DeviceInsightResponse[]; payloadSubmission?: DevicePayloadSubmission; } export interface DeviceSdkBridge { initialize(configuration: DeviceSdkConfiguration): void | Promise; submit(): DeviceSdkSubmitResult | Promise; } export type DeviceSdkLoader = () => Promise; export interface DeviceClientOptions { fetch?: typeof fetch; loadBridge?: DeviceSdkLoader; source?: string; } export interface DeviceSessionStarted { challenge: Awaited>; authorization: Awaited>; sessionConfiguration: SessionConfigurationResponse; } export declare class DeviceClient { private readonly authClient; private readonly loadBridge; private readonly source; private bridgePromise?; private deviceInitializationState; constructor(baseUrl: string, options?: DeviceClientOptions); startSession(request: { challenge: ChallengeRequest; authorize: AuthorizeRequest; sessionConfiguration: SessionConfigurationRequest; deviceConfiguration?: DeviceSdkConfiguration; }): Promise; submitAndSeed(accessToken: string): Promise; deviceEvent(eventId: string, accessToken: string): Promise; private bridge; } export declare function loadInstalledDeviceBridge(): Promise; export declare function loadBundledDeviceBridge(): Promise; export declare function normalizeDeviceSdkSubmission(submission: DeviceSdkSubmitResult, platform: string): DeviceSdkSubmitResult; export declare function toDeviceSeedRequest(submission: DeviceSdkSubmitResult, source: string): DeviceSeedRequest;