import { type NativeModule } from 'expo'; /** * A document as the iOS module registers it — everything the OS needs to match it, and nothing else. * The credential itself never leaves the app. */ export type IosDocumentRegistration = { documentIdentifier: string; documentType: string; supportedAuthorityKeyIdentifiers: string[]; /** * When the OS should stop matching the document, ISO 8601. Absent when it never expires. */ invalidationDate?: string; }; declare class DigitalCredentialsApiModule extends NativeModule { isSupported(): boolean; getRegistrationStatus(): Promise; /** Android: the encoded credential database plus the matcher that reads it. */ registerCredentials(credentialsBase64: string, matcher: string): Promise; /** iOS: registrations with the OS, which does the matching itself. Replaces the whole store. */ registerDocuments(registrations: IosDocumentRegistration[]): Promise; addDocument(registration: IosDocumentRegistration): Promise; removeDocument(documentIdentifier: string): Promise; /** * iOS: the document types the app's `…mobile-document-types` entitlement lists, as the config * plugin mirrored them into the Info.plist. `undefined` when the key is absent. */ getEntitledDocumentTypes?(): string[] | null; /** iOS: path of the app group container, in whichever process asks. */ getSharedContainerPath(): string; /** Drops everything this package registered. Both platforms. */ removeAllCredentials(): Promise; /** * iOS: commit to answering the in-flight request, and get the request the OS then releases as a * JSON encoded {@link DcApiProtocolRequest} array. Android needs no equivalent — the picker * delivers the requests with the result, so they are on the request from the start. */ approveRequest(): Promise; /** * The response as a JSON encoded `{ protocol, data }` object, in the same shape the requests come * in with: `data` is the protocol's own response object, which both platforms take as it is. */ sendResponse(credentialResponse: string): Promise; sendErrorResponse(errorMessage: string): void; } declare const nativeModule: DigitalCredentialsApiModule | null; export declare function getNativeModule(operation: string): DigitalCredentialsApiModule; export default nativeModule; //# sourceMappingURL=nativeModule.d.ts.map