import { components, operations, paths } from "./schemas/robotoff.cjs"; import { formBody } from "./formbody.cjs"; import { FetchFn } from "./types.cjs"; import * as _$openapi_fetch0 from "openapi-fetch"; //#region src/robotoff.d.ts type RobotoffInsightQuery = paths["/insights"]["get"]["parameters"]["query"]; type RobotoffInsightResponse = paths["/insights"]["get"]["responses"]["200"]["content"]["application/json"]; type RobotoffAnnotateBody = paths["/insights/annotate"]["post"]["requestBody"]["content"]["application/x-www-form-urlencoded"]; type Question = { insight_id: string; question: string; image_url?: string; value?: string; }; type QuestionsResponse = { status?: "found" | "no_questions"; questions?: Question[]; }; type LogoSearchParams = paths["/images/logos/search"]["get"]["parameters"]["query"]; type LogoAnnotation = paths["/images/logos/annotate"]["post"]["requestBody"]["content"]["application/json"]["annotations"][number]; type RobotoffQuestionsQuery = operations["getQuestions"]["parameters"]["query"]; type RobotoffUnansweredQuestionsQuery = operations["getUnansweredQuestions"]["parameters"]["query"]; declare class Robotoff { /** The fetch function used for every request */ private readonly fetch; /** The raw openapi-fetch client is used for every request exposed by the openapi schema */ private readonly raw; /** The base URL for the API */ private readonly baseUrl; constructor(fetch: FetchFn, options?: { baseUrl: string; }); annotate(body: RobotoffAnnotateBody): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/x-www-form-urlencoded": { insight_id: string; annotation: 0 | 1 | -1 | 2; update?: 0 | 1; data?: Record | null; device_id?: string; }; }; }; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { status_code?: number; status?: string; description?: string; }; }; }; 400: { headers: { [name: string]: unknown; }; content?: never; }; 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }, { body: { insight_id: string; annotation: 0 | 1 | -1 | 2; update?: 0 | 1; data?: Record | null; device_id?: string; }; headers: { "Content-Type": string; }; bodySerializer: typeof formBody; }, `${string}/${string}`>>; questionsByProductCode(code: number, query?: operations["getQuestionsByBarcode"]["parameters"]["query"]): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: { count?: number; server_type?: components["parameters"]["server_type"]; lang?: components["parameters"]["lang"]; insight_types?: components["parameters"]["insight_types"]; }; header?: never; path: { barcode: components["parameters"]["barcode_path"]; }; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { status?: "no_questions" | "found"; questions?: components["schemas"]["Question"][]; }; }; }; }; }, { params: { path: { barcode: number; }; query: { count?: number; server_type?: components["parameters"]["server_type"]; lang?: components["parameters"]["lang"]; insight_types?: components["parameters"]["insight_types"]; } | undefined; }; }, `${string}/${string}`>>; insightDetail(id: string): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: never; header?: never; path: { insight_id: string; }; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["InsightSearchResult"]; }; }; }; }, { params: { path: { insight_id: string; }; }; }, `${string}/${string}`>>; /** * Fetches insights based on the provided query. * * @param {RobotoffInsightQuery} query - The query object containing parameters for fetching insights. * @returns A promise that resolves to the data from the insights endpoint * */ insights(query: RobotoffInsightQuery): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: { insight_types?: components["parameters"]["insight_types"]; barcode?: components["parameters"]["barcode_optional"]; annotated?: components["parameters"]["insight_filter_annotated"]; annotation?: components["parameters"]["insight_filter_annotation"]; value_tag?: components["parameters"]["value_tag"]; brands?: components["parameters"]["brands"]; countries?: components["parameters"]["countries"]; server_type?: components["parameters"]["server_type"]; predictor?: components["parameters"]["predictor"]; order_by?: components["parameters"]["insight_order_by"]; count?: components["parameters"]["count"]; page?: components["parameters"]["page"]; campaigns?: components["parameters"]["campaigns"]; lc?: components["parameters"]["lc"]; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { insights?: components["schemas"]["InsightSearchResult"][]; status?: "no_insights" | "found"; count?: number; }; }; }; }; }, { params: { query: { insight_types?: components["parameters"]["insight_types"]; barcode?: components["parameters"]["barcode_optional"]; annotated?: components["parameters"]["insight_filter_annotated"]; annotation?: components["parameters"]["insight_filter_annotation"]; value_tag?: components["parameters"]["value_tag"]; brands?: components["parameters"]["brands"]; countries?: components["parameters"]["countries"]; server_type?: components["parameters"]["server_type"]; predictor?: components["parameters"]["predictor"]; order_by?: components["parameters"]["insight_order_by"]; count?: components["parameters"]["count"]; page?: components["parameters"]["page"]; campaigns?: components["parameters"]["campaigns"]; lc?: components["parameters"]["lc"]; } | undefined; }; }, `${string}/${string}`>>; loadLogo(logoId: string): Promise; searchLogos(params: LogoSearchParams): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: { server_type?: components["parameters"]["server_type"]; barcode?: components["parameters"]["barcode_query_filter"]; count?: number; type?: string; value?: string; taxonomy_value?: string; min_confidence?: number; random?: boolean; annotated?: boolean | null; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { logos: components["schemas"]["LogoDetails"][]; count: number; }; }; }; }; }, { params: { query: { server_type?: components["parameters"]["server_type"]; barcode?: components["parameters"]["barcode_query_filter"]; count?: number; type?: string; value?: string; taxonomy_value?: string; min_confidence?: number; random?: boolean; annotated?: boolean | null; } | undefined; }; }, `${string}/${string}`>>; annotateLogos(annotations: LogoAnnotation[]): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/json": { annotations: { logo_id: number; type: "brand" | "category" | "label" | "no_logo" | "nutritional_label" | "packager_code" | "packaging" | "qr_code" | "store"; value: string | null; }[]; server_type?: components["parameters"]["server_type"]; }; }; }; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { annotated?: number; }; }; }; }; }, { body: { annotations: { logo_id: number; type: "brand" | "category" | "label" | "no_logo" | "nutritional_label" | "packager_code" | "packaging" | "qr_code" | "store"; value: string | null; }[]; }; }, `${string}/${string}`>>; resetLogo(logoId: number): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: never; header?: never; path: { logo_id: number; }; cookie?: never; }; requestBody?: never; responses: { 204: { headers: { [name: string]: unknown; }; content?: never; }; 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }, { params: { path: { logo_id: number; }; }; }, `${string}/${string}`>>; getLogoAnnotations(logoId?: number, index?: number, count?: number): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: { count?: components["parameters"]["ann_search_count"]; server_type?: components["parameters"]["server_type"]; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["LogoANNSearchResponse"]; }; }; }; }, { params: { query: { index: number; count: number; }; }; }, `${string}/${string}`>>; questions(query?: Omit, /** * The page number * @default 0 */ page?: number, /** * The page size * @default 25 */ count?: number): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: { lang?: components["parameters"]["lang"]; count?: components["parameters"]["count"]; server_type?: components["parameters"]["server_type"]; insight_types?: components["parameters"]["insight_types"]; countries?: components["parameters"]["countries"]; brands?: components["parameters"]["brands"]; value_tag?: components["parameters"]["value_tag"]; page?: components["parameters"]["page"]; reserved_barcode?: components["parameters"]["reserved_barcode"]; campaigns?: components["parameters"]["campaigns"]; predictor?: components["parameters"]["predictor"]; order_by?: "confidence" | "random" | "popularity"; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { status?: "no_questions" | "found"; questions?: components["schemas"]["Question"][]; count?: number; }; }; }; }; }, { params: { query: { page: number; count: number; }; }; }, `${string}/${string}`>>; /** * Returns the number of unanswered questions per values. * Especially useful for campaigns like the eco-score one */ getQuestionsUnanswered(query?: Omit, /** * The page number * @default 0 */ page?: number, /** * The page size * @default 25 */ count?: number): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: { count?: number; server_type?: components["parameters"]["server_type"]; type?: components["parameters"]["insight_type"]; countries?: components["parameters"]["countries"]; page?: components["parameters"]["page"]; reserved_barcode?: components["parameters"]["reserved_barcode"]; campaigns?: components["parameters"]["campaigns"]; predictor?: components["parameters"]["predictor"]; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { count: number; questions: (string | number)[]; status: "found" | "no_questions"; }; }; }; }; }, { params: { query: { page: number; count: number; }; }; }, `${string}/${string}`>>; updateLogo(logoId: number, body: { type: string; value?: string | null; }): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: never; header?: never; path: { logo_id: number; }; cookie?: never; }; requestBody: { content: { "application/json": { type: string; value?: string | null; }; }; }; responses: { 204: { headers: { [name: string]: unknown; }; content?: never; }; 403: { headers: { [name: string]: unknown; }; content?: never; }; 404: { headers: { [name: string]: unknown; }; content?: never; }; }; }, { params: { path: { logo_id: number; }; }; body: { type: string; value?: string | null; }; }, `${string}/${string}`>>; getUserStatistics(username: string): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: never; header?: never; path: { username: string; }; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { count?: { annotations?: number; }; }; }; }; }; }, { params: { path: { username: string; }; }; }, `${string}/${string}`>>; getCroppedImageUrl(imageUrl: string, /** * The bounding box of the crop, in the format [y_min, x_min, y_max, x_max] */ boundingBox: [number, number, number, number]): string; /** * Get a batch of logo from their ids. * @param logoIds The array of logos to fetch. */ fetchLogos(logoIds: string[]): Promise<_$openapi_fetch0.FetchResponse<{ parameters: { query?: { logo_ids?: string; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { 200: { headers: { [name: string]: unknown; }; content: { "application/json": { logos: components["schemas"]["LogoDetails"][]; count: number; }; }; }; }; }, { params: { query: { logo_ids: string; }; }; }, `${string}/${string}`>>; } //#endregion export { LogoAnnotation, LogoSearchParams, Question, QuestionsResponse, Robotoff, RobotoffAnnotateBody, RobotoffInsightQuery, RobotoffInsightResponse, RobotoffQuestionsQuery, RobotoffUnansweredQuestionsQuery }; //# sourceMappingURL=robotoff.d.cts.map