[Exposed=Window, SecureContext]
interface Credential {
    readonly attribute USVString id;
    readonly attribute DOMString type;
    static Promise<boolean> isConditionalMediationAvailable();
    static Promise<undefined> willRequestConditionalCreation();
};

[SecureContext]
interface mixin CredentialUserData {
    readonly attribute USVString name;
    readonly attribute USVString iconURL;
};

dictionary CredentialData {
    required USVString id;
};

enum CredentialMediationRequirement {
    "silent",
    "optional",
    "conditional",
    "required"
};
