import type { LTApiResult } from '../types/sdk'; import type { LTRoleType } from '../types'; /** * List users with optional filters for role, role type, status, and pagination. * * @param input.role — filter by role name * @param input.roleType — filter by role type (superadmin, admin, member) * @param input.status — filter by user status * @param input.limit — maximum number of users to return * @param input.offset — number of users to skip for pagination * @returns `{ status: 200, data: User[] }` on success */ export declare function listUsers(input: { role?: string; roleType?: LTRoleType; status?: string; limit?: number; offset?: number; }): Promise; /** * Retrieve a single user by ID. * * @param input.id — the user's unique identifier * @returns `{ status: 200, data: User }` on success, or `{ status: 404 }` if not found */ export declare function getUser(input: { id: string; }): Promise; /** * Create a new user. Requires admin privileges. * * Validates that external_id is present and that any provided roles have valid * names and types. Returns 409 if a user with the same external_id already exists. * * @param input.external_id — external system identifier (required) * @param input.email — user's email address * @param input.display_name — user's display name * @param input.roles — initial role assignments, each with a role name and type (superadmin, admin, member) * @param input.metadata — arbitrary key-value metadata to attach to the user * @returns `{ status: 201, data: User }` on success, or `{ status: 409 }` on duplicate external_id */ export declare function createUser(input: { external_id?: string; email?: string; display_name?: string; password?: string; roles?: { role: string; type: string; }[]; metadata?: Record; }): Promise; /** * Update an existing user's profile fields. Requires admin privileges. * * Only the provided fields are updated; omitted fields remain unchanged. * * @param input.id — the user's unique identifier (required) * @param input.email — new email address * @param input.display_name — new display name * @param input.status — new user status * @param input.metadata — replacement metadata object * @returns `{ status: 200, data: User }` on success, or `{ status: 404 }` if not found */ export declare function updateUser(input: { id: string; email?: string; display_name?: string; password?: string; status?: string; metadata?: Record; }): Promise; /** * Delete a user by ID. Requires admin privileges. * * @param input.id — the user's unique identifier * @returns `{ status: 200, data: { deleted: true } }` on success, or `{ status: 404 }` if not found */ export declare function deleteUser(input: { id: string; }): Promise; /** * Retrieve all roles assigned to a user. * * @param input.id — the user's unique identifier * @returns `{ status: 200, data: { roles: Role[] } }` on success */ export declare function getUserRoles(input: { id: string; }): Promise; /** * Assign a role to a user. Requires admin privileges. * * Validates that both role and type are provided and that the type is one of * superadmin, admin, or member. * * @param input.id — the user's unique identifier * @param input.role — the role name to assign * @param input.type — the role type (superadmin, admin, or member) * @returns `{ status: 201, data: UserRole }` on success */ export declare function addUserRole(input: { id: string; role: string; type: string; }): Promise; /** * Remove a role from a user. Requires admin privileges. * * @param input.id — the user's unique identifier * @param input.role — the role name to remove * @returns `{ status: 200, data: { removed: true } }` on success, or `{ status: 404 }` if role not found */ export declare function removeUserRole(input: { id: string; role: string; }): Promise;