export type FieldType = ('text' | 'select' | 'multiselect' | 'date' | 'user' | 'multiuser'); export type PropertyField = { id: string; group_id: string; name: string; type: FieldType; attrs?: { subType?: string; [key: string]: unknown; }; target_id?: string; target_type?: string; create_at: number; update_at: number; delete_at: number; }; export type NameMappedPropertyFields = { [key: PropertyField['name']]: PropertyField; }; export type PropertyValue = { id: string; target_id: string; target_type: string; group_id: string; field_id: string; value: T; create_at: number; update_at: number; delete_at: number; }; export type UserPropertyFieldType = 'text' | 'select' | 'multiselect'; export type UserPropertyFieldGroupID = 'custom_profile_attributes'; export type UserPropertyValueType = 'phone' | 'url' | ''; export type FieldVisibility = 'always' | 'hidden' | 'when_set'; export type FieldValueType = 'email' | 'url' | 'phone' | ''; export type PropertyFieldOption = { id: string; name: string; color?: string; }; export type UserPropertyField = PropertyField & { group_id: UserPropertyFieldGroupID; attrs: { sort_order: number; visibility: FieldVisibility; value_type: FieldValueType; options?: PropertyFieldOption[]; ldap?: string; saml?: string; managed?: string; }; }; export type SelectPropertyField = PropertyField & { attrs?: { editable?: boolean; options?: PropertyFieldOption[]; }; }; export declare const supportsOptions: (field: UserPropertyField) => boolean; export type UserPropertyFieldPatch = Partial>;