{
	"name": "NativeCredentialsFacade",
	"type": "facade",
	"senders": ["web"],
	"receivers": ["ios", "desktop", "android"],
	"doc": "Operations for credential encryption operations using OS keychain.",
	"methods": {
		"getSupportedEncryptionModes": {
			"arg": [],
			"ret": "List<CredentialEncryptionMode>"
		},
		"loadAll": {
			"arg": [],
			"ret": "List<PersistedCredentials>"
		},
		"store": {
			"arg": [{ "credentials": "UnencryptedCredentials" }],
			"doc": "Encrypt and store credentials",
			"ret": "void"
		},
		"storeEncrypted": {
			"arg": [{ "credentials": "PersistedCredentials" }],
			"doc": "Store already encrypted credentials",
			"ret": "void"
		},
		"loadByUserId": {
			"arg": [{ "id": "string" }],
			"ret": "UnencryptedCredentials?"
		},
		"deleteByUserId": {
			"arg": [{ "id": "string" }],
			"ret": "void"
		},
		"getCredentialEncryptionMode": {
			"arg": [],
			"ret": "CredentialEncryptionMode?"
		},
		"setCredentialEncryptionMode": {
			"arg": [{ "encryptionMode": "CredentialEncryptionMode" }],
			"ret": "void"
		},
		"clear": {
			"arg": [],
			"ret": "void"
		},
		"migrateToNativeCredentials": {
			"arg": [
				{ "credentials": "List<PersistedCredentials>" },
				{ "encryptionMode": "CredentialEncryptionMode" },
				{ "credentialsKey": "bytes" }
			],
			"doc": "Migrate existing credentials to native db",
			"ret": "void"
		}
	}
}
