/**
 * Copyright © 2025 Nevis Security AG. All rights reserved.
 */
import { FidoUafAttestationInformation } from './FidoUafAttestationInformation';
import { FidoUafAttestationInformationError } from '../error/attestationInformation/FidoUafAttestationInformationError';
import { Operation } from '../operations/Operation';
/**
 * The object that can be used to obtain the information regarding the support of
 * {@link https://docs.nevis.net/configurationguide/mobile-auth-concept-and-integration-guide/use-cases-and-best-practices/uaf-surrogate-full-basic-comparison | Full Basic Attestation}
 * in this device.
 *
 * > [!IMPORTANT]
 * > This operation is Android specific. On iOS the {@link onSuccess} will be invoked with `undefined`
 * > FIDO UAF attestation information.
 *
 * If full basic attestation is required by the backend during registration, and this device does not
 * support it, registration will fail. This information can be used to preemptively inform the user
 * that the device is not supported.
 *
 * Usage example:
 * ```ts
 *  async function getAttestationInformation(
 *      client: MobileAuthenticationClient,
 *  ): Promise<void> {
 *      await client.deviceCapabilities
 *          .androidDeviceCapabilities
 *          .fidoUafAttestationInformationGetter
 *          .onSuccess((FidoUafAttestationInformation? info) {
 *              // handle success
 *          })
 *          .onError((error) {
 *              // handle error
 *          })
 *          .execute();
 *  }
 * ```
 *
 * @group Performing Operations
 * @see {@link AndroidDeviceCapabilities.fidoUafAttestationInformationGetter}
 */
export declare abstract class FidoUafAttestationInformationGetter extends Operation {
    /**
     * Disables Certificate Revocation List (CRL) checking for {@link FidoUafAttestationInformationGetter}.
     * FIDO UAF attestation information will be retrieved without checking the revocation of the device's certification
     * on the CRL published by Google {@link https://android.googleapis.com/attestation/status | here}.
     *
     * By default, the CRL check is enabled.
     *
     * @returns a {@link FidoUafAttestationInformationGetter} object.
     */
    abstract disableCrlCheck(): FidoUafAttestationInformationGetter;
    /**
     * Specifies the object that will be invoked if the FIDO UAF attestation information could be
     * obtained. The specified object will receive an optional {@link FidoUafAttestationInformation}.
     *
     * > [!IMPORTANT]
     * > Providing the `onSuccess` callback is required.
     *
     * @param onSuccess the callback which will be invoked if the FIDO UAF attestation information
     * could be obtained.
     * @returns a {@link FidoUafAttestationInformationGetter} object.
     */
    abstract onSuccess(onSuccess: (fidoUafAttestationInformation?: FidoUafAttestationInformation) => void): FidoUafAttestationInformationGetter;
    /**
     * Specifies the object that will be invoked if the FIDO UAF attestation information could not be
     * obtained.
     *
     * > [!IMPORTANT]
     * > Providing the `onError` callback is required.
     *
     * @param onError the callback which receives a {@link FidoUafAttestationInformationError}.
     * @returns a {@link FidoUafAttestationInformationGetter} object.
     */
    abstract onError(onError: (error: FidoUafAttestationInformationError) => void): FidoUafAttestationInformationGetter;
}
export declare class FidoUafAttestationInformationGetterImpl extends FidoUafAttestationInformationGetter {
    private _disableCrlCheck;
    private _onSuccess?;
    private _onError?;
    disableCrlCheck(): FidoUafAttestationInformationGetter;
    onSuccess(onSuccess: (fidoUafAttestationInformation?: FidoUafAttestationInformation) => void): FidoUafAttestationInformationGetter;
    onError(onError: (error: FidoUafAttestationInformationError) => void): FidoUafAttestationInformationGetter;
    execute(): Promise<void>;
}
//# sourceMappingURL=FidoUafAttestationInformationGetter.d.ts.map