/** * Athena API * REST API for the Athena system * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import type { PaginatedUserConcepts, UpsertUserConceptByNameRequest, UserConcept } from '../models/index'; export interface EnsureUserConceptTrackedRequest { conceptId: string; xUserId: string; } export interface GetUserConceptRequest { conceptId: string; xUserId: string; } export interface ListUserConceptsRequest { xUserId: string; limit?: number; cursor?: string; sortBy?: ListUserConceptsSortByEnum; } export interface ListUserConceptsByIdsRequest { conceptIds: Array; xUserId: string; } export interface UpsertUserConceptByNameOperationRequest { xUserId: string; upsertUserConceptByNameRequest: UpsertUserConceptByNameRequest; } /** * */ export declare class UserConceptsApi extends runtime.BaseAPI { /** * Find-or-creates the calling account user\'s user-concept row for an existing global concept id, seeding strength and confidence of 0.000 when absent, and returns it joined with concept metadata. Idempotent: re-calling returns the existing row unchanged and never resets an in-progress strength, so it is safe to call before launching a learning session on a concept the learner hasn\'t engaged yet. Concurrency-safe — simultaneous calls resolve to a single row. Always responds 200 (both the fresh-create and returning-existing paths are successful). Unlike the by-name upsert this never creates a concept; an id that doesn\'t resolve to a real concept returns 404. * Ensure a user concept is tracked by concept id */ ensureUserConceptTrackedRaw(requestParameters: EnsureUserConceptTrackedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Find-or-creates the calling account user\'s user-concept row for an existing global concept id, seeding strength and confidence of 0.000 when absent, and returns it joined with concept metadata. Idempotent: re-calling returns the existing row unchanged and never resets an in-progress strength, so it is safe to call before launching a learning session on a concept the learner hasn\'t engaged yet. Concurrency-safe — simultaneous calls resolve to a single row. Always responds 200 (both the fresh-create and returning-existing paths are successful). Unlike the by-name upsert this never creates a concept; an id that doesn\'t resolve to a real concept returns 404. * Ensure a user concept is tracked by concept id */ ensureUserConceptTracked(requestParameters: EnsureUserConceptTrackedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Returns the single user-concept row for the calling account user and the supplied concept id, joined with concept metadata. 404s when the caller has no user-concept row for that concept (i.e. they don\'t track it yet). Use this to look up a single user-concept directly when the concept id is already known — avoids list-and-scan over the full paginated user-concept set. * Get a user concept by concept id */ getUserConceptRaw(requestParameters: GetUserConceptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Returns the single user-concept row for the calling account user and the supplied concept id, joined with concept metadata. 404s when the caller has no user-concept row for that concept (i.e. they don\'t track it yet). Use this to look up a single user-concept directly when the concept id is already known — avoids list-and-scan over the full paginated user-concept set. * Get a user concept by concept id */ getUserConcept(requestParameters: GetUserConceptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Returns a paginated list of concepts tracked for the authenticated account user. sortBy values: \'priority\' (v1 = updatedAt DESC with weakest-first tie-break), \'updated\' (updatedAt DESC), \'strength\' (weakest first). * List user concepts */ listUserConceptsRaw(requestParameters: ListUserConceptsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Returns a paginated list of concepts tracked for the authenticated account user. sortBy values: \'priority\' (v1 = updatedAt DESC with weakest-first tie-break), \'updated\' (updatedAt DESC), \'strength\' (weakest first). * List user concepts */ listUserConcepts(requestParameters: ListUserConceptsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Returns the calling account user\'s mastery for a supplied set of concept ids, joined with concept metadata. Only the tracked subset is returned — ids the caller has no user-concept row for are omitted (callers treat an absent id as \'not assessed\'), so the result may be shorter than the requested id list and is empty when none are tracked. Account-user-scoped: never surfaces another learner\'s rows. Capped at 100 ids per request (over-cap, empty, or non-uuid → 400). Use this to enrich a known set of concepts (e.g. a study objective\'s extracted concepts) with per-concept mastery in a single call instead of N single lookups. * Batch read user concepts by concept ids */ listUserConceptsByIdsRaw(requestParameters: ListUserConceptsByIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; /** * Returns the calling account user\'s mastery for a supplied set of concept ids, joined with concept metadata. Only the tracked subset is returned — ids the caller has no user-concept row for are omitted (callers treat an absent id as \'not assessed\'), so the result may be shorter than the requested id list and is empty when none are tracked. Account-user-scoped: never surfaces another learner\'s rows. Capped at 100 ids per request (over-cap, empty, or non-uuid → 400). Use this to enrich a known set of concepts (e.g. a study objective\'s extracted concepts) with per-concept mastery in a single call instead of N single lookups. * Batch read user concepts by concept ids */ listUserConceptsByIds(requestParameters: ListUserConceptsByIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Finds or creates a concept matching the supplied name and ensures a user-concept row exists for the calling account user. Matching is case-insensitive and whitespace-normalized with a trailing sentence period stripped; when no exact-name match exists, the name is embedded and reused if it is semantically near an existing concept (so near-duplicates are not created). Returns the (possibly pre-existing) user-concept joined with its concept — note the returned concept name is the canonical stored name, which may differ from the submitted text when an existing concept is reused. Always responds 200 — both fresh creates and returning-existing-row paths are successful and idempotent. New user-concept rows are seeded with strength and confidence of 0.000; no user_concept_history row is written. * Upsert user concept by name */ upsertUserConceptByNameRaw(requestParameters: UpsertUserConceptByNameOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Finds or creates a concept matching the supplied name and ensures a user-concept row exists for the calling account user. Matching is case-insensitive and whitespace-normalized with a trailing sentence period stripped; when no exact-name match exists, the name is embedded and reused if it is semantically near an existing concept (so near-duplicates are not created). Returns the (possibly pre-existing) user-concept joined with its concept — note the returned concept name is the canonical stored name, which may differ from the submitted text when an existing concept is reused. Always responds 200 — both fresh creates and returning-existing-row paths are successful and idempotent. New user-concept rows are seeded with strength and confidence of 0.000; no user_concept_history row is written. * Upsert user concept by name */ upsertUserConceptByName(requestParameters: UpsertUserConceptByNameOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; } /** * @export */ export declare const ListUserConceptsSortByEnum: { readonly Priority: "priority"; readonly Updated: "updated"; readonly Strength: "strength"; }; export type ListUserConceptsSortByEnum = typeof ListUserConceptsSortByEnum[keyof typeof ListUserConceptsSortByEnum];