import * as plugins from '../plugins.js'; import * as data from '../data/index.js'; export interface IPassportDeviceSignedRequest { deviceId: string; timestamp: number; nonce: string; signatureBase64: string; signatureFormat?: data.TPassportSignatureFormat; } export interface IReq_CreatePassportEnrollmentChallenge extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_CreatePassportEnrollmentChallenge > { method: 'createPassportEnrollmentChallenge'; request: { jwt: string; deviceLabel: string; platform: data.TPassportDevicePlatform; appVersion?: string; capabilities?: Partial; }; response: { challengeId: string; pairingToken: string; pairingPayload: string; signingPayload: string; expiresAt: number; }; } export interface IReq_CompletePassportEnrollment extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_CompletePassportEnrollment > { method: 'completePassportEnrollment'; request: { pairingToken: string; deviceLabel: string; platform: data.TPassportDevicePlatform; publicKeyX963Base64: string; signatureBase64: string; signatureFormat?: data.TPassportSignatureFormat; appVersion?: string; capabilities?: Partial; }; response: { device: data.IPassportDevice; }; } export interface IReq_GetPassportDevices extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_GetPassportDevices > { method: 'getPassportDevices'; request: { jwt: string; }; response: { devices: data.IPassportDevice[]; }; } export interface IReq_RevokePassportDevice extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_RevokePassportDevice > { method: 'revokePassportDevice'; request: { jwt: string; deviceId: string; }; response: { success: boolean; }; } export interface IReq_CreatePassportChallenge extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_CreatePassportChallenge > { method: 'createPassportChallenge'; request: { jwt: string; type?: Exclude; preferredDeviceId?: string; audience?: string; notificationTitle?: string; requireLocation?: boolean; requireNfc?: boolean; }; response: { challengeId: string; challenge: string; signingPayload: string; deviceId: string; expiresAt: number; }; } export interface IReq_ApprovePassportChallenge extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_ApprovePassportChallenge > { method: 'approvePassportChallenge'; request: { challengeId: string; deviceId: string; signatureBase64: string; signatureFormat?: data.TPassportSignatureFormat; location?: data.IPassportLocationEvidence; nfc?: data.IPassportNfcEvidence; }; response: { success: boolean; challenge: data.IPassportChallenge; }; } export interface IReq_RegisterPassportPushToken extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_RegisterPassportPushToken > { method: 'registerPassportPushToken'; request: IPassportDeviceSignedRequest & { provider: data.TPassportPushProvider; token: string; topic: string; environment: data.TPassportPushEnvironment; }; response: { success: boolean; }; } export interface IReq_ListPendingPassportChallenges extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_ListPendingPassportChallenges > { method: 'listPendingPassportChallenges'; request: IPassportDeviceSignedRequest; response: { challenges: data.IPassportChallenge[]; }; } export interface IReq_GetPassportChallengeByHint extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_GetPassportChallengeByHint > { method: 'getPassportChallengeByHint'; request: IPassportDeviceSignedRequest & { hintId: string; }; response: { challenge?: data.IPassportChallenge; }; } export interface IReq_MarkPassportChallengeSeen extends plugins.typedRequestInterfaces.implementsTR< plugins.typedRequestInterfaces.ITypedRequest, IReq_MarkPassportChallengeSeen > { method: 'markPassportChallengeSeen'; request: IPassportDeviceSignedRequest & { hintId: string; }; response: { success: boolean; }; }