import { Base64urlString } from "../base64url";
import { CredentialCreationOptionsJSON, CredentialRequestOptionsJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, PublicKeyCredentialWithAssertionJSON, PublicKeyCredentialWithAttestationJSON, AuthenticatorAttestationResponseJSON } from "../basic/json";
interface ExtendedExtensionsClientInputsJSON {
    appid?: string;
    appidExclude?: string;
    uvm?: boolean;
    credProps?: boolean;
    largeBlob?: {
        support?: "required" | "preferred";
        read?: boolean;
        write?: Base64urlString;
    };
}
interface ExtendedAuthenticationExtensionsClientOutputsJSON {
    appid?: boolean;
    appidExclude?: boolean;
    uvm?: [number, number, number][];
    credProps?: {
        rk: boolean;
    };
    largeBlob?: {
        supported?: boolean;
        blob?: Base64urlString;
        written?: boolean;
    };
}
interface PublicKeyCredentialCreationOptionsExtendedJSON extends PublicKeyCredentialCreationOptionsJSON {
    extensions?: ExtendedExtensionsClientInputsJSON;
}
export interface CredentialCreationOptionsExtendedJSON extends CredentialCreationOptionsJSON {
    publicKey: PublicKeyCredentialCreationOptionsExtendedJSON;
}
export interface AuthenticatorAttestationResponseExtendedJSONCallablePartial {
    getTransports?: () => string[];
    getAuthenticatorData?: () => Base64urlString;
    getPublicKey?: () => Base64urlString | null;
    getPublicKeyAlgorithm?: () => COSEAlgorithmIdentifier;
}
export interface AuthenticatorAttestationResponseExtendedJSONCallable extends AuthenticatorAttestationResponseJSON, AuthenticatorAttestationResponseExtendedJSONCallablePartial {
}
export interface PublicKeyCredentialWithAttestationExtendedResultsJSON extends PublicKeyCredentialWithAttestationJSON {
    response: AuthenticatorAttestationResponseExtendedJSONCallable;
    clientExtensionResults: ExtendedAuthenticationExtensionsClientOutputsJSON;
}
interface PublicKeyCredentialRequestOptionsExtendedJSON extends PublicKeyCredentialRequestOptionsJSON {
    extensions?: ExtendedExtensionsClientInputsJSON;
}
export interface CredentialRequestOptionsExtendedJSON extends CredentialRequestOptionsJSON {
    publicKey?: PublicKeyCredentialRequestOptionsExtendedJSON;
}
export interface PublicKeyCredentialWithAssertionExtendedResultsJSON extends PublicKeyCredentialWithAssertionJSON {
    clientExtensionResults: ExtendedAuthenticationExtensionsClientOutputsJSON;
}
export {};
