import type { AutocompleteFoodsResponse, AutocompleteFoodsRequest, CorrectPhotoScanRequest, CreateFoodLogRequest, CreateWaterLogRequest, CreateWeightLogRequest, DeleteWaterLogRequest, DeleteWaterLogResponse, ListWaterLogsRequest, ListWaterLogsResponse, ListWeightLogsRequest, ListWeightLogsResponse, WaterLog, WeightLog, DeleteFoodLogResponse, DeleteFoodLogRequest, FoodLog, FoodLogSummary, FoodScan, FoodSearchItem, FoodSearchResults, GetFoodRequest, GetFoodLogRequest, GetFoodLogSummaryRequest, GetRestaurantMenuItemsResponse, GetRestaurantMenuItemsRequest, GlucosePrediction, ListFoodLogsRequest, ListFoodLogsResponse, LookupFoodByBarcodeRequest, PartnerUserContext, PredictGlucoseRequest, ScanFoodPhotoRequest, SearchFoodsByNaturalLanguageRequest, SearchFoodsRequest, SearchRestaurantMenuItemsResponse, SearchRestaurantsRequest, SearchRestaurantsResponse, SuggestFoodAlternativesRequest, SuggestFoodAlternativesResponse, UpdateFoodLogRequest } from './models.js'; import type { FoodsResource } from './resources/foods.js'; import type { FoodLogsResource } from './resources/food-logs.js'; import type { GlucoseResource } from './resources/glucose.js'; import type { FoodAnalysisResource } from './resources/photo-scanning.js'; import type { RestaurantsResource } from './resources/restaurants.js'; import type { WaterLogsResource } from './resources/water-logs.js'; import type { WeightLogsResource } from './resources/weight-logs.js'; type WithoutUserContext = Omit; type WithoutUserId = Omit; export type UserAutocompleteFoodsRequest = WithoutUserId; export type UserGetFoodRequest = WithoutUserId; export type UserSearchFoodsRequest = WithoutUserId; export type UserLookupFoodByBarcodeRequest = WithoutUserId; export type UserSearchFoodsByNaturalLanguageRequest = WithoutUserId; export type UserSuggestFoodAlternativesRequest = WithoutUserId; export type UserGetRestaurantMenuItemsRequest = WithoutUserId; export type UserSearchRestaurantsRequest = WithoutUserId; export type UserScanFoodPhotoRequest = WithoutUserId; export type UserCorrectPhotoScanRequest = WithoutUserId; export type UserCreateFoodLogRequest = WithoutUserContext; export type UserListFoodLogsRequest = WithoutUserContext; export type UserGetFoodLogRequest = WithoutUserContext; export type UserGetFoodLogSummaryRequest = WithoutUserContext; export type UserUpdateFoodLogRequest = WithoutUserContext; export type UserDeleteFoodLogRequest = WithoutUserContext; export type UserPredictGlucoseRequest = WithoutUserContext; export type UserCreateWaterLogRequest = WithoutUserContext; export type UserListWaterLogsRequest = WithoutUserContext; export type UserDeleteWaterLogRequest = WithoutUserContext; export type UserCreateWeightLogRequest = WithoutUserContext; export type UserListWeightLogsRequest = WithoutUserContext; /** Food operations bound to one partner-owned end-user identity. */ export interface UserFoodsResource { /** Returns autocomplete suggestions for a partial food query. */ autocomplete(request: UserAutocompleteFoodsRequest): Promise; /** Hydrates a food with its complete serving choices. */ get(request: UserGetFoodRequest): Promise; /** Searches January's food database. */ search(request: UserSearchFoodsRequest): Promise; /** Looks up foods by barcode. */ lookupBarcode(request: UserLookupFoodByBarcodeRequest): Promise; /** Suggests alternatives for a food. */ suggestAlternatives(request: UserSuggestFoodAlternativesRequest): Promise; } /** Restaurant operations bound to one partner-owned end-user identity. */ export interface UserRestaurantsResource { getMenuItems(request: UserGetRestaurantMenuItemsRequest): Promise; /** Searches restaurants near a location. */ search(request: UserSearchRestaurantsRequest): Promise; /** Searches restaurant menu items near a location. */ searchMenuItems(request: UserSearchRestaurantsRequest): Promise; } /** Food-analysis operations bound to one partner-owned end-user identity. */ export interface UserFoodAnalysisResource { /** Analyzes a prepared food-photo data URI. */ analyzePhoto(request: UserScanFoodPhotoRequest): Promise; /** Analyzes a natural-language meal description. */ analyzeDescription(request: UserSearchFoodsByNaturalLanguageRequest): Promise; /** Applies a correction to a previous analysis. */ correct(request: UserCorrectPhotoScanRequest): Promise; } /** Food-log operations bound to one user and optional timezone. */ export interface UserFoodLogsResource { /** Creates a food log. */ create(request: UserCreateFoodLogRequest): Promise; /** Lists food logs in an inclusive calendar-date range. */ list(request: UserListFoodLogsRequest): Promise; /** Gets one food log by id. */ get(request: UserGetFoodLogRequest): Promise; /** Summarizes food logs per day or week over an inclusive calendar-date range. */ getSummary(request: UserGetFoodLogSummaryRequest): Promise; /** Updates an existing food log. */ update(request: UserUpdateFoodLogRequest): Promise; /** Deletes a food log. */ delete(request: UserDeleteFoodLogRequest): Promise; } /** Glucose operations bound to one user and optional timezone. */ export interface UserGlucoseResource { /** Predicts the glucose response for a meal. */ predict(request: UserPredictGlucoseRequest): Promise; } /** Water-log operations bound to one user and optional timezone. */ export interface UserWaterLogsResource { /** Logs one amount of water. */ create(request: UserCreateWaterLogRequest): Promise; /** Lists daily water totals in an inclusive calendar-date range, in the requested unit. */ list(request: UserListWaterLogsRequest): Promise; /** Deletes a water log; deleting an unknown log also succeeds. */ delete(request: UserDeleteWaterLogRequest): Promise; } /** Weight-log operations bound to one user and optional timezone. */ export interface UserWeightLogsResource { /** Logs one weight measurement. */ create(request: UserCreateWeightLogRequest): Promise; /** Lists the latest weight per day in an inclusive calendar-date range. */ list(request: UserListWeightLogsRequest): Promise; } /** A lightweight, immutable client scoped to one signed-in application user. */ export interface JanuaryPartnerUserClient { readonly context: Readonly; readonly foods: UserFoodsResource; readonly restaurants: UserRestaurantsResource; readonly foodAnalysis: UserFoodAnalysisResource; readonly foodLogs: UserFoodLogsResource; readonly glucose: UserGlucoseResource; readonly waterLogs: UserWaterLogsResource; readonly weightLogs: UserWeightLogsResource; } interface UserClientResources { foods: FoodsResource; restaurants: RestaurantsResource; foodAnalysis: FoodAnalysisResource; foodLogs: FoodLogsResource; glucose: GlucoseResource; waterLogs: WaterLogsResource; weightLogs: WeightLogsResource; } /** @internal Creates the scoped client returned by JanuaryPartnerClient.forUser. */ export declare function createJanuaryPartnerUserClient(resources: UserClientResources, context: PartnerUserContext): JanuaryPartnerUserClient; export {}; //# sourceMappingURL=user-client.d.ts.map