one
Version:
One is a React framework for web, iOS, and Android apps.
68 lines (60 loc) • 1.67 kB
text/typescript
import type { HybridObject } from 'react-native-nitro-modules'
export type ContactsPermissionStatus =
| 'notDetermined'
| 'restricted'
| 'denied'
| 'authorized'
| 'limited'
export interface ContactPostalAddress {
label: string
street: string
subLocality: string
city: string
subAdministrativeArea: string
state: string
postalCode: string
country: string
isoCountryCode: string
}
export interface ContactPostalAddressInput {
label?: string
street?: string
subLocality?: string
city?: string
subAdministrativeArea?: string
state?: string
postalCode?: string
country?: string
isoCountryCode?: string
}
export interface ContactInfo {
identifier: string
givenName: string
familyName: string
phoneNumbers: string[]
emailAddresses: string[]
postalAddresses: ContactPostalAddress[]
}
export interface ContactInput {
givenName: string
familyName: string
phoneNumbers: string[]
emailAddresses: string[]
postalAddresses?: ContactPostalAddressInput[]
}
export interface ContactChanges {
givenName?: string
familyName?: string
phoneNumbers?: string[]
emailAddresses?: string[]
postalAddresses?: ContactPostalAddressInput[]
}
export interface OneContacts extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
getPermissionStatus(): ContactsPermissionStatus
requestPermission(): Promise<ContactsPermissionStatus>
pickContact(): Promise<ContactInfo | undefined>
search(name: string, limit: number): Promise<ContactInfo[]>
create(input: ContactInput): Promise<string>
update(identifier: string, changes: ContactChanges): Promise<ContactInfo>
remove(identifier: string): Promise<void>
}