blob: 3c09f6197aff85594ffdef84975e6efb61f21e5c [file]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/** @fileoverview Definitions for chrome.autofillPrivate API */
// TODO(crbug.com/40179454): Auto-generate this file.
import {ChromeEvent} from './chrome_event.js';
declare global {
export namespace chrome {
export namespace autofillPrivate {
export interface AccountInfo {
email: string;
isSyncEnabledForAutofillProfiles: boolean;
isEligibleForAddressAccountStorage: boolean;
isAutofillSyncToggleEnabled: boolean;
isAutofillSyncToggleAvailable: boolean;
}
/**
* This enum must be kept in sync with:
* components/autofill/core/browser/field_types.h.
*/
export enum FieldType {
NO_SERVER_DATA,
UNKNOWN_TYPE,
EMPTY_TYPE,
NAME_FIRST,
NAME_MIDDLE,
NAME_LAST,
NAME_MIDDLE_INITIAL,
NAME_FULL,
NAME_SUFFIX,
ALTERNATIVE_FULL_NAME,
ALTERNATIVE_GIVEN_NAME,
ALTERNATIVE_FAMILY_NAME,
EMAIL_ADDRESS,
PHONE_HOME_NUMBER,
PHONE_HOME_CITY_CODE,
PHONE_HOME_COUNTRY_CODE,
PHONE_HOME_CITY_AND_NUMBER,
PHONE_HOME_WHOLE_NUMBER,
ADDRESS_HOME_LINE1,
ADDRESS_HOME_LINE2,
ADDRESS_HOME_APT_NUM,
ADDRESS_HOME_CITY,
ADDRESS_HOME_STATE,
ADDRESS_HOME_ZIP,
ADDRESS_HOME_COUNTRY,
CREDIT_CARD_NAME_FULL,
CREDIT_CARD_NUMBER,
CREDIT_CARD_EXP_MONTH,
CREDIT_CARD_EXP_2_DIGIT_YEAR,
CREDIT_CARD_EXP_4_DIGIT_YEAR,
CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR,
CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
CREDIT_CARD_TYPE,
CREDIT_CARD_VERIFICATION_CODE,
COMPANY_NAME,
MERCHANT_EMAIL_SIGNUP,
MERCHANT_PROMO_CODE,
PASSWORD,
ACCOUNT_CREATION_PASSWORD,
ADDRESS_HOME_STREET_ADDRESS,
ADDRESS_HOME_SORTING_CODE,
ADDRESS_HOME_DEPENDENT_LOCALITY,
ADDRESS_HOME_LINE3,
NOT_ACCOUNT_CREATION_PASSWORD,
USERNAME,
USERNAME_AND_EMAIL_ADDRESS,
NEW_PASSWORD,
PROBABLY_NEW_PASSWORD,
NOT_NEW_PASSWORD,
CREDIT_CARD_NAME_FIRST,
CREDIT_CARD_NAME_LAST,
PHONE_HOME_EXTENSION,
CONFIRMATION_PASSWORD,
AMBIGUOUS_TYPE,
SEARCH_TERM,
PRICE,
NOT_PASSWORD,
SINGLE_USERNAME,
NOT_USERNAME,
UPI_VPA,
ADDRESS_HOME_STREET_NAME,
ADDRESS_HOME_HOUSE_NUMBER,
ADDRESS_HOME_SUBPREMISE,
ADDRESS_HOME_OTHER_SUBUNIT,
NAME_LAST_FIRST,
NAME_LAST_CONJUNCTION,
NAME_LAST_SECOND,
NAME_HONORIFIC_PREFIX,
ADDRESS_HOME_ADDRESS,
ADDRESS_HOME_ADDRESS_WITH_NAME,
ADDRESS_HOME_FLOOR,
PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX,
PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX,
PHONE_HOME_NUMBER_PREFIX,
PHONE_HOME_NUMBER_SUFFIX,
IBAN_VALUE,
CREDIT_CARD_STANDALONE_VERIFICATION_CODE,
NUMERIC_QUANTITY,
ONE_TIME_CODE,
DELIVERY_INSTRUCTIONS,
ADDRESS_HOME_OVERFLOW,
ADDRESS_HOME_LANDMARK,
ADDRESS_HOME_OVERFLOW_AND_LANDMARK,
ADDRESS_HOME_ADMIN_LEVEL2,
ADDRESS_HOME_STREET_LOCATION,
ADDRESS_HOME_BETWEEN_STREETS,
ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK,
ADDRESS_HOME_BETWEEN_STREETS_1,
ADDRESS_HOME_BETWEEN_STREETS_2,
SINGLE_USERNAME_FORGOT_PASSWORD,
ADDRESS_HOME_APT,
ADDRESS_HOME_APT_TYPE,
ADDRESS_HOME_HOUSE_NUMBER_AND_APT,
SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES,
PASSPORT_NAME_TAG,
PASSPORT_NUMBER,
PASSPORT_ISSUING_COUNTRY,
PASSPORT_EXPIRATION_DATE,
PASSPORT_ISSUE_DATE,
LOYALTY_MEMBERSHIP_PROGRAM,
LOYALTY_MEMBERSHIP_PROVIDER,
LOYALTY_MEMBERSHIP_ID,
VEHICLE_OWNER_TAG,
VEHICLE_LICENSE_PLATE,
VEHICLE_VIN,
VEHICLE_MAKE,
VEHICLE_MODEL,
DRIVERS_LICENSE_NAME_TAG,
DRIVERS_LICENSE_REGION,
DRIVERS_LICENSE_NUMBER,
DRIVERS_LICENSE_EXPIRATION_DATE,
DRIVERS_LICENSE_ISSUE_DATE,
VEHICLE_YEAR,
VEHICLE_PLATE_STATE,
EMAIL_OR_LOYALTY_MEMBERSHIP_ID,
NATIONAL_ID_CARD_NUMBER,
NATIONAL_ID_CARD_EXPIRATION_DATE,
NATIONAL_ID_CARD_ISSUE_DATE,
NATIONAL_ID_CARD_ISSUING_COUNTRY,
REDRESS_NUMBER,
KNOWN_TRAVELER_NUMBER,
KNOWN_TRAVELER_NUMBER_EXPIRATION_DATE,
ADDRESS_HOME_ZIP_PREFIX,
ADDRESS_HOME_ZIP_SUFFIX,
FLIGHT_RESERVATION_FLIGHT_NUMBER,
FLIGHT_RESERVATION_TICKET_NUMBER,
FLIGHT_RESERVATION_CONFIRMATION_CODE,
FLIGHT_RESERVATION_PASSENGER_NAME,
FLIGHT_RESERVATION_DEPARTURE_DATE,
ADDRESS_HOME_ZIP_AND_CITY,
ORDER_ID,
ORDER_DATE,
ORDER_MERCHANT_NAME,
SHIPMENT_TRACKING_NUMBER,
}
export enum AddressRecordType {
LOCAL_OR_SYNCABLE = 'LOCAL_OR_SYNCABLE',
ACCOUNT = 'ACCOUNT',
ACCOUNT_HOME = 'ACCOUNT_HOME',
ACCOUNT_WORK = 'ACCOUNT_WORK',
ACCOUNT_NAME_EMAIL = "ACCOUNT_NAME_EMAIL"
}
export enum AttributeTypeDataType {
COUNTRY = 'COUNTRY',
DATE = 'DATE',
STRING = 'STRING',
}
export enum EntityPassType {
PUBLIC_PASS = 'PUBLIC_PASS',
PRIVATE_PASS = 'PRIVATE_PASS',
}
export interface AutofillMetadata {
summaryLabel: string;
summarySublabel?: string;
recordType?: AddressRecordType;
isLocal?: boolean;
isMigratable?: boolean;
isVirtualCardEnrollmentEligible?: boolean;
isVirtualCardEnrolled?: boolean;
}
export interface AddressField {
type: FieldType;
value: string|undefined;
}
export interface AddressEntry {
guid?: string;
fields: AddressField[];
languageCode?: string;
metadata?: AutofillMetadata;
}
export interface CountryEntry {
name?: string;
countryCode?: string;
}
export interface AddressComponent {
field: FieldType;
fieldName: string;
isLongField: boolean;
isRequired: boolean;
placeholder?: string;
}
export interface AddressComponentRow {
row: AddressComponent[];
}
export interface AddressComponents {
components: AddressComponentRow[];
languageCode: string;
}
export interface CreditCardEntry {
guid?: string;
instrumentId?: string;
name?: string;
cardNumber?: string;
expirationMonth?: string;
expirationYear?: string;
nickname?: string;
network?: string;
imageSrc?: string;
cvc?: string;
productTermsUrl?: string;
metadata?: AutofillMetadata;
}
export interface IbanEntry {
guid?: string;
instrumentId?: string;
value?: string;
nickname?: string;
metadata?: AutofillMetadata;
}
export interface AttributeType {
typeName: number;
typeNameAsString: string;
dataType: AttributeTypeDataType;
}
export interface EntityType {
typeName: number;
typeNameAsString: string;
addEntityTypeString: string;
editEntityTypeString: string;
deleteEntityTypeString: string;
supportsWalletStorage: boolean;
passType?: EntityPassType;
}
export interface DateValue {
year: string;
month: string;
day: string;
}
export interface AttributeInstance {
type: AttributeType;
value: string|DateValue;
}
export interface EntityInstance {
type: EntityType;
attributeInstances: AttributeInstance[];
guid: string;
nickname: string;
shouldAuthenticateToView?: boolean;
storedInWallet?: boolean;
isReadOnly?: boolean;
}
export interface EntityInstanceWithLabels {
guid: string;
type: EntityType;
entityInstanceLabel: string;
entityInstanceSubLabel: string;
storedInWallet: boolean;
walletEntityUrl?: string;
isReadOnly?: boolean;
}
export interface PayOverTimeIssuerEntry {
issuerId?: string;
instrumentId?: string;
displayName?: string;
imageSrc?: string;
imageSrcDark?: string;
}
export function getAccountInfo(): Promise<AccountInfo|undefined>;
export function saveAddress(address: AddressEntry): void;
export function removeAddress(guid: string): void;
export function getCountryList(forAccountStorage: boolean):
Promise<CountryEntry[]>;
export function getAddressComponents(
countryCode: string): Promise<AddressComponents>;
export function getAddressList(): Promise<AddressEntry[]>;
export function saveCreditCard(card: CreditCardEntry): void;
export function saveIban(iban: IbanEntry): void;
export function removePaymentsEntity(guid: string): void;
export function getCreditCardList(): Promise<CreditCardEntry[]>;
export function getIbanList(): Promise<IbanEntry[]>;
export function isValidIban(ibanValue: string): Promise<boolean>;
export function logServerCardLinkClicked(): void;
export function logServerIbanLinkClicked(): void;
export function addVirtualCard(cardId: string): void;
export function removeVirtualCard(cardId: string): void;
export function getPayOverTimeIssuerList():
Promise<PayOverTimeIssuerEntry[]>;
export function authenticateUserAndFlipMandatoryAuthToggle(): void;
export function authenticateUserBeforeViewingEntityData():
Promise<boolean>;
export function toggleAutofillAiReauthRequirement(): void;
export function getLocalCard(guid: string): Promise<CreditCardEntry|null>;
export function checkIfDeviceAuthAvailable(): Promise<boolean>;
export function bulkDeleteAllCvcs(): void;
export function setAutofillSyncToggleEnabled(enabled: boolean): void;
export function addOrUpdateEntityInstance(entityInstance: EntityInstance):
Promise<void>;
export function removeEntityInstance(guid: string): void;
export function loadEntityInstances():
Promise<EntityInstanceWithLabels[]>;
export function getEntityInstanceByGuid(guid: string):
Promise<EntityInstance>;
export function getWritableEntityTypes(): Promise<EntityType[]>;
export function getAllAttributeTypesForEntityTypeName(
entityTypeName: number): Promise<AttributeType[]>;
export function getRequiredAttributeTypesForEntityTypeName(
entityTypeName: number): Promise<AttributeType[]>;
export function getAutofillAiOptInStatus(): Promise<boolean>;
export function setAutofillAiOptInStatus(optedIn: boolean):
Promise<boolean>;
export function getWalletablePassDetectionOptInStatus(): Promise<boolean>;
export function setWalletablePassDetectionOptInStatus(optedIn: boolean):
Promise<boolean>;
export const onPersonalDataChanged: ChromeEvent<
(addresses: AddressEntry[], creditCards: CreditCardEntry[],
ibans: IbanEntry[], payOverTimeIssuers: PayOverTimeIssuerEntry[],
accountInfo?: AccountInfo) => void>;
export const onEntityInstancesChanged: ChromeEvent<
(entityInstancesWithLabels: EntityInstanceWithLabels[]) => void>;
}
}
}