import type { UserProfile } from "../_internal/types.gen"; import type { RequestOptions } from "../base-client"; import { RequestBuilder } from "../request-builder"; /** Attributes accepted when creating a user profile (admin). Mirrors resource accept list. */ /** * Legal document types accepted by `admin.userProfiles.acceptLegalDocument`. * Mirrors the platform `LegalAcceptance.document_type` constraint. */ export type LegalDocumentType = "terms_of_service" | "privacy_policy" | "baa" | "dpa" | "scc" | "npp" | "security_policy" | "incident_response_plan" | "contingency_plan" | "access_control_policy" | "risk_management_plan" | "training_policy" | "sanction_policy" | "breach_notification_policy" | "system_activity_review" | "data_retention_policy" | "minimum_necessary_policy" | "authorization_form"; export type CreateUserProfileAttributes = { /** Required on admin surface: which user owns this profile. */ user_id: string; first_name?: string; last_name?: string; avatar_url?: string; bio?: string; social_links?: Record; preferences?: Record; }; /** Attributes accepted when updating a user profile (admin). Mirrors resource accept list. */ export type UpdateUserProfileAttributes = { first_name?: string; last_name?: string; avatar_url?: string; bio?: string; social_links?: Record; preferences?: Record; }; /** * Manages user profiles across all tenants (admin). * * Provides platform-level profile administration including ToS acceptance, * welcome/announcement dismissals, and profile CRUD. */ export declare function createUserProfilesNamespace(rb: RequestBuilder): { /** * Delete a user profile. * @param id - User profile ID. * @param options - Optional request options. * @returns `true` when deletion succeeds. * @example * ```typescript * await admin.userProfiles.delete("profile_123"); * ``` */ delete: (id: string, options?: RequestOptions) => Promise; /** * List user profiles with optional pagination. * @param options - Optional page, pageSize, and request options. * @returns Array of user profiles. * @example * ```typescript * const profiles = await admin.userProfiles.list({ page: 1, pageSize: 25 }); * ``` */ list: (options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; /** * List all user profiles by fetching every page. * @param options - Optional request options. * @returns Complete array of user profiles. * @example * ```typescript * const profiles = await admin.userProfiles.listAll(); * ``` */ listAll: (options?: RequestOptions) => Promise; /** * Get a user profile by ID. * @param id - User profile ID. * @param options - Optional request options. * @returns The requested user profile. * @example * ```typescript * const profile = await admin.userProfiles.get("profile_123"); * ``` */ get: (id: string, options?: RequestOptions) => Promise; /** * Create a user profile. * @param attributes.user_id - Required target user that owns this profile; admin keys do not infer it from the actor. * @param attributes - Profile attributes to create. * @param options - Optional request options. * @returns The created user profile. * @example * ```typescript * await admin.userProfiles.create({ user_id: "user_123", first_name: "Ada" }); * ``` */ create: (attributes: CreateUserProfileAttributes, options?: RequestOptions) => Promise; /** * Update a user profile. * @param id - User profile ID. * @param attributes - Profile attributes to update. * @param options - Optional request options. * @returns The updated user profile. * @example * ```typescript * await admin.userProfiles.update("profile_123", { first_name: "Ada" }); * ``` */ update: (id: string, attributes: UpdateUserProfileAttributes, options?: RequestOptions) => Promise; /** * Get the current user's profile. * @param options - Optional request options. * @returns The current caller's user profile. * @example * ```typescript * const profile = await admin.userProfiles.me(); * ``` */ me: (options?: RequestOptions) => Promise; /** * Accept a legal document at a given version. Generic over document * type — same shape for ToS, Privacy Policy, BAA, DPA, and any other * document the platform tracks. Records a `LegalAcceptance` row scoped * to the calling application; for `terms_of_service` the platform also * auto-grants `:ai_document_processing` consent. * * Replaces the legacy `acceptTos(id, version, ppVersion?)`. Accept one * document per call. RFI-C5-R. * * @param id - Profile ID * @param documentType - Legal document type (e.g. "terms_of_service", * "privacy_policy", "baa") * @param version - The active version of that document * @param options - Optional request options. * @returns The updated user profile. * @example * ```typescript * await admin.userProfiles.acceptLegalDocument( * "profile_123", * "terms_of_service", * "2026-04-01", * ); * ``` */ acceptLegalDocument: (id: string, documentType: LegalDocumentType, version: string, options?: RequestOptions) => Promise; /** * Dismiss the welcome message for this profile. * @param id - User profile ID. * @param options - Optional request options. * @returns The updated user profile. * @example * ```typescript * await admin.userProfiles.dismissWelcome("profile_123"); * ``` */ dismissWelcome: (id: string, options?: RequestOptions) => Promise; /** * Dismiss the announcement banner for this profile. * @param id - User profile ID. * @param options - Optional request options. * @returns The updated user profile. * @example * ```typescript * await admin.userProfiles.dismissAnnouncement("profile_123"); * ``` */ dismissAnnouncement: (id: string, options?: RequestOptions) => Promise; }; //# sourceMappingURL=userProfiles.d.ts.map