text: // Copyright 2021 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  // This file was generated by:
  //   tools/json_schema_compiler/compiler.py.
  // NOTE: The format of types has changed. 'FooType' is now
  //   'chrome.autofillPrivate.FooType'.
  // Please run the closure compiler before committing changes.
  // See https://chromium.googlesource.com/chromium/src/+/main/docs/closure_compilation.md
  
  /** @fileoverview Externs generated from namespace: autofillPrivate */
  
  /** @const */
  chrome.autofillPrivate = {};
  
  /**
   * @enum {string}
   */
  chrome.autofillPrivate.AddressField = {
    HONORIFIC: 'HONORIFIC',
    FULL_NAME: 'FULL_NAME',
    COMPANY_NAME: 'COMPANY_NAME',
    ADDRESS_LINES: 'ADDRESS_LINES',
    ADDRESS_LEVEL_1: 'ADDRESS_LEVEL_1',
    ADDRESS_LEVEL_2: 'ADDRESS_LEVEL_2',
    ADDRESS_LEVEL_3: 'ADDRESS_LEVEL_3',
    POSTAL_CODE: 'POSTAL_CODE',
    SORTING_CODE: 'SORTING_CODE',
    COUNTRY_CODE: 'COUNTRY_CODE',
  };
  
  /**
   * @typedef {{
   *   summaryLabel: string,
   *   summarySublabel: (string|undefined),
   *   isLocal: (boolean|undefined),
   *   isCached: (boolean|undefined),
   *   isMigratable: (boolean|undefined)
   * }}
   */
  chrome.autofillPrivate.AutofillMetadata;
  
  /**
   * @typedef {{
   *   guid: (string|undefined),
   *   fullNames: (!Array<string>|undefined),
   *   honorific: (string|undefined),
   *   companyName: (string|undefined),
   *   addressLines: (string|undefined),
   *   addressLevel1: (string|undefined),
   *   addressLevel2: (string|undefined),
   *   addressLevel3: (string|undefined),
   *   postalCode: (string|undefined),
   *   sortingCode: (string|undefined),
   *   countryCode: (string|undefined),
   *   phoneNumbers: (!Array<string>|undefined),
   *   emailAddresses: (!Array<string>|undefined),
   *   languageCode: (string|undefined),
   *   metadata: (!chrome.autofillPrivate.AutofillMetadata|undefined)
   * }}
   */
  chrome.autofillPrivate.AddressEntry;
  
  /**
   * @typedef {{
   *   name: (string|undefined),
   *   countryCode: (string|undefined)
   * }}
   */
  chrome.autofillPrivate.CountryEntry;
  
  /**
   * @typedef {{
   *   field: !chrome.autofillPrivate.AddressField,
   *   fieldName: string,
   *   isLongField: boolean,
   *   placeholder: (string|undefined)
   * }}
   */
  chrome.autofillPrivate.AddressComponent;
  
  /**
   * @typedef {{
   *   row: !Array<!chrome.autofillPrivate.AddressComponent>
   * }}
   */
  chrome.autofillPrivate.AddressComponentRow;
  
  /**
   * @typedef {{
   *   components: !Array<!chrome.autofillPrivate.AddressComponentRow>,
   *   languageCode: string
   * }}
   */
  chrome.autofillPrivate.AddressComponents;
  
  /**
   * @typedef {{
   *   guid: (string|undefined),
   *   name: (string|undefined),
   *   cardNumber: (string|undefined),
   *   expirationMonth: (string|undefined),
   *   expirationYear: (string|undefined),
   *   nickname: (string|undefined),
   *   network: (string|undefined),
   *   metadata: (!chrome.autofillPrivate.AutofillMetadata|undefined)
   * }}
   */
  chrome.autofillPrivate.CreditCardEntry;
  
  /**
   * @typedef {{
   *   phoneNumbers: !Array<string>,
   *   indexOfNewNumber: number,
   *   countryCode: string
   * }}
   */
  chrome.autofillPrivate.ValidatePhoneParams;
  
  /**
   * Saves the given address. If |address| has an empty string as its ID, it will
   * be assigned a new one and added as a new entry.
   * @param {!chrome.autofillPrivate.AddressEntry} address The address entry to
   *     save.
   */
  chrome.autofillPrivate.saveAddress = function(address) {};
  
  /**
   * Gets the list of all countries.
   * @param {function(!Array<!chrome.autofillPrivate.CountryEntry>): void}
   *     callback Callback which will be called with the countries.
   */
  chrome.autofillPrivate.getCountryList = function(callback) {};
  
  /**
   * Gets the address components for a given country code.
   * @param {string} countryCode A two-character string representing the address'
   *     country     whose components should be returned. See autofill_country.cc
   *     for a     list of valid codes.
   * @param {function(!chrome.autofillPrivate.AddressComponents): void} callback
   *     Callback which will be called with components.
   */
  chrome.autofillPrivate.getAddressComponents = function(countryCode, callback) {};
  
  /**
   * Gets the list of addresses.
   * @param {function(!Array<!chrome.autofillPrivate.AddressEntry>): void}
   *     callback Callback which will be called with the list of addresses.
   */
  chrome.autofillPrivate.getAddressList = function(callback) {};
  
  /**
   * Saves the given credit card. If |card| has an empty string as its ID, it will
   * be assigned a new one and added as a new entry.
   * @param {!chrome.autofillPrivate.CreditCardEntry} card The card entry to save.
   */
  chrome.autofillPrivate.saveCreditCard = function(card) {};
  
  /**
   * Removes the entry (address or credit card) with the given ID.
   * @param {string} guid ID of the entry to remove.
   */
  chrome.autofillPrivate.removeEntry = function(guid) {};
  
  /**
   * Validates a newly-added phone number and invokes the callback with a list of
   * validated numbers. Note that if the newly-added number was invalid, it will
   * not be returned in the list of valid numbers.
   * @param {!chrome.autofillPrivate.ValidatePhoneParams} params The parameters to
   *     this function.
   * @param {function(!Array<string>): void} callback Callback which will be
   *     called with validated phone numbers.
   */
  chrome.autofillPrivate.validatePhoneNumbers = function(params, callback) {};
  
  /**
   * Gets the list of credit cards.
   * @param {function(!Array<!chrome.autofillPrivate.CreditCardEntry>): void}
   *     callback Callback which will be called with the list of credit cards.
   */
  chrome.autofillPrivate.getCreditCardList = function(callback) {};
  
  /**
   * Clears the data associated with a wallet card which was saved locally so that
   * the saved copy is masked (e.g., "Card ending in 1234").
   * @param {string} guid GUID of the credit card to mask.
   */
  chrome.autofillPrivate.maskCreditCard = function(guid) {};
  
  /**
   * Triggers local credit cards migration.
   */
  chrome.autofillPrivate.migrateCreditCards = function() {};
  
  /**
   * Logs that the server cards edit link was clicked.
   */
  chrome.autofillPrivate.logServerCardLinkClicked = function() {};
  
  /**
   * Enables or disables FIDO Authentication for credit card unmasking.
   * @param {boolean} enabled
   */
  chrome.autofillPrivate.setCreditCardFIDOAuthEnabledState = function(enabled) {};
  
  /**
   * Gets the list of UPI IDs (a.k.a. Virtual Payment Addresses).
   * @param {function(!Array<string>): void} callback Callback which will be
   *     called with the list of UPI IDs.
   */
  chrome.autofillPrivate.getUpiIdList = function(callback) {};
  
  /**
   * Fired when the personal data has changed, meaning that an entry has been
   * added, removed, or changed. |entries| The updated list of entries.
   * @type {!ChromeEvent}
   */
  chrome.autofillPrivate.onPersonalDataChanged;
  