import type { RegisterCredentialOptions, RegisterCredentialsOptions, RegistrationStatus } from './types'; /** * Whether the Digital Credentials API can be used on this device. On iOS this requires iOS 26 or * higher; on Android it requires Credential Manager with the registry API. */ export declare function isSupported(): boolean; /** * Whether the user has allowed this app to provide identity documents. * * On iOS the first {@link registerCredentials} call triggers the system permission prompt; this * reports the current state without prompting. Android needs no permission, so it is `authorized` * whenever the API is available. */ export declare function getRegistrationStatus(): Promise; /** * Register the credentials that should surface in the system credential picker, replacing any * previously registered set. * * Credentials the platform cannot present are skipped rather than rejected, so a wallet can pass its * whole set on both platforms. On iOS that means everything except `mso_mdoc` credentials whose * document type the app is entitled to provide — the config plugin's `ios.documentTypes`, a subset * of {@link iosSupportedDocumentTypes}. The OS does the matching there, and only knows those. The * first call on iOS triggers the system permission prompt. * * Only what the OS matches on leaves the app: the document identifier and type, and the gates in * {@link DcApiCredential.ios}. The credentials themselves stay in the wallet's own storage, which is * also where the request UI has to look them up again — see {@link getSharedContainerPath}. * * @returns the ids of the credentials that were actually registered. */ export declare function registerCredentials(options: RegisterCredentialsOptions): Promise; /** * Register one credential, leaving everything else that is registered alone. * * iOS only, where the OS keeps the registered set itself and each document is added and removed on * its own. On Android the whole credential registry is replaced at once, so a wallet adding a single * credential calls {@link registerCredentials} with its full set. * * Unlike {@link registerCredentials} a credential this build cannot present throws rather than being * skipped: the caller named this one credential, and silently registering nothing would look exactly * like success. */ export declare function registerCredential(options: RegisterCredentialOptions): Promise; /** * Remove a single registered credential. iOS only — on Android call {@link registerCredentials} with * the remaining credentials, since the whole registry is replaced at once. */ export declare function removeCredential(credentialId: string): Promise; /** * Remove all registered credentials, on both platforms. */ export declare function removeAllCredentials(): Promise; /** * Absolute path of the app group container the app and the credential request UI share. * * iOS only, and the same path in both processes: the request UI runs inside the provider extension, * which has its own sandbox and cannot see the app's own container. A wallet that has to look up * credentials while answering a request — which is every wallet, since iOS has no system picker — * keeps its database here. * * Nothing of this package's lives in the container; it only resolves the path. The app group comes * from the config plugin's `ios.appGroup`, and this throws when none is configured. * * On Android there is nothing to share: the request UI runs in the app's own sandbox. */ export declare function getSharedContainerPath(): string; //# sourceMappingURL=api.d.ts.map