import { type FilenSDK } from ".."; import { type UserInfoResponse } from "../api/v3/user/info"; import { type UserSettingsResponse } from "../api/v3/user/settings"; import { type UserAccountResponse } from "../api/v3/user/account"; import { type UserGDPRResponse } from "../api/v3/user/gdpr"; import { type UserEvent } from "../api/v3/user/events"; import { type UserEventResponse } from "../api/v3/user/event"; import { type PaymentMethods } from "../api/v3/user/sub/create"; import { type UserProfileResponse } from "../api/v3/user/profile"; import { type UserLockStatus } from "../api/v3/user/lock"; /** * User * @date 2/1/2024 - 2:44:47 AM * * @export * @class User * @typedef {User} */ export declare class User { private readonly sdk; constructor(sdk: FilenSDK); /** * Fetch the user's info. * @date 2/20/2024 - 6:39:47 AM * * @public * @async * @returns {Promise} */ info(): Promise; /** * Fetch the user's base folder UUID. * @date 2/20/2024 - 6:40:17 AM * * @public * @async * @returns {Promise} */ baseFolder(): Promise; /** * Get a user's public key. * @date 2/20/2024 - 6:41:01 AM * * @public * @async * @param {{email: string}} param0 * @param {string} param0.email * @returns {Promise} */ publicKey({ email }: { email: string; }): Promise; /** * Fetch the user's settings. * @date 2/20/2024 - 6:41:53 AM * * @public * @async * @returns {Promise} */ settings(): Promise; /** * Fetch user account. * @date 2/20/2024 - 6:42:45 AM * * @public * @async * @returns {Promise} */ account(): Promise; /** * Fetch GDPR info. * @date 2/20/2024 - 6:43:36 AM * * @public * @async * @returns {Promise} */ gdpr(): Promise; /** * Upload an avatar. * @date 2/20/2024 - 6:46:44 AM * * @public * @async * @param {{buffer: Buffer}} param0 * @param {Buffer} param0.buffer * @returns {Promise} */ uploadAvatar({ buffer }: { buffer: Buffer; }): Promise; /** * Change email. * @date 2/20/2024 - 6:50:24 AM * * @public * @async * @param {{email: string, password: string}} param0 * @param {string} param0.email * @param {string} param0.password * @returns {Promise} */ changeEmail({ email, password }: { email: string; password: string; }): Promise; /** * Update personal information. * @date 2/20/2024 - 6:52:44 AM * * @public * @async * @param {{ * city?: string * companyName?: string * country?: string * firstName?: string * lastName?: string * postalCode?: string * street?: string * streetNumber?: string * vatId?: string * }} param0 * @param {string} [param0.city="__NONE__"] * @param {string} [param0.companyName="__NONE__"] * @param {string} [param0.country="__NONE__"] * @param {string} [param0.firstName="__NONE__"] * @param {string} [param0.lastName="__NONE__"] * @param {string} [param0.postalCode="__NONE__"] * @param {string} [param0.street="__NONE__"] * @param {string} [param0.streetNumber="__NONE__"] * @param {string} [param0.vatId="__NONE__"] * @returns {Promise} */ updatePersonalInformation({ city, companyName, country, firstName, lastName, postalCode, street, streetNumber, vatId }: { city?: string; companyName?: string; country?: string; firstName?: string; lastName?: string; postalCode?: string; street?: string; streetNumber?: string; vatId?: string; }): Promise; /** * Request account deletion. * @date 2/20/2024 - 6:54:22 AM * * @public * @async * @param {{ twoFactorCode?: string }} param0 * @param {string} [param0.twoFactorCode="XXXXXX"] * @returns {Promise} */ delete({ twoFactorCode }: { twoFactorCode?: string; }): Promise; /** * Delete all versioned files. * @date 2/20/2024 - 6:54:57 AM * * @public * @async * @returns {Promise} */ deleteAllVersionedFiles(): Promise; /** * Delete all files and directories. * @date 2/20/2024 - 6:55:20 AM * * @public * @async * @returns {Promise} */ deleteEverything(): Promise; /** * Change password. * @date 2/20/2024 - 7:03:26 AM * * @public * @async * @param {{ currentPassword: string; newPassword: string }} param0 * @param {string} param0.currentPassword * @param {string} param0.newPassword * @returns {Promise} */ changePassword({ currentPassword, newPassword }: { currentPassword: string; newPassword: string; }): Promise; /** * Mark the current master keys as exported. * * @public * @async * @returns {Promise} */ didExportMasterKeys(): Promise; /** * Check if the current API key is valid. * * @public * @async * @returns {Promise} */ checkAPIKeyValidity(): Promise; /** * Enable two factor authentication. Returns the recovery keys. * @date 2/20/2024 - 7:04:35 AM * * @public * @async * @param {{twoFactorCode: string}} param0 * @param {string} param0.twoFactorCode * @returns {Promise} */ enableTwoFactorAuthentication({ twoFactorCode }: { twoFactorCode: string; }): Promise; /** * Disable two factor authentication. * @date 2/20/2024 - 7:05:03 AM * * @public * @async * @param {{ twoFactorCode: string }} param0 * @param {string} param0.twoFactorCode * @returns {Promise} */ disableTwoFactorAuthentication({ twoFactorCode }: { twoFactorCode: string; }): Promise; /** * Fetch events based on timestamp and filter. Timestamp can be used for pagination. * * @public * @async * @param {?{ timestamp?: number; filter?: "all" }} [params] * @returns {Promise} */ events(params?: { timestamp?: number; filter?: "all"; }): Promise; /** * Fetch info about an event. * @date 2/20/2024 - 7:10:44 AM * * @public * @async * @param {{uuid: string}} param0 * @param {string} param0.uuid * @returns {Promise} */ event({ uuid }: { uuid: string; }): Promise; /** * Cancel a subscription. * @date 2/20/2024 - 7:12:09 AM * * @public * @async * @param {{uuid: string}} param0 * @param {string} param0.uuid * @returns {Promise} */ cancelSubscription({ uuid }: { uuid: string; }): Promise; /** * Create a subscription payment flow. Returns the payment gateway URL. * @date 2/20/2024 - 7:13:19 AM * * @public * @async * @param {{planId: number, paymentMethod: PaymentMethods}} param0 * @param {number} param0.planId * @param {PaymentMethods} param0.paymentMethod * @returns {Promise} */ createSubscription({ planId, paymentMethod }: { planId: number; paymentMethod: PaymentMethods; }): Promise; /** * Generate a PDF invoice. Returns PDF data as a Base64 encoded string. * @date 2/20/2024 - 7:14:22 AM * * @public * @async * @param {{uuid: string}} param0 * @param {string} param0.uuid * @returns {Promise} */ generateInvoice({ uuid }: { uuid: string; }): Promise; /** * Request an affiliate payout. * @date 2/20/2024 - 7:15:26 AM * * @public * @async * @param {{method: string, address: string}} param0 * @param {string} param0.method * @param {string} param0.address * @returns {Promise} */ requestAffiliatePayout({ method, address }: { method: string; address: string; }): Promise; /** * Toggle file versioning on/off. * @date 2/20/2024 - 7:16:11 AM * * @public * @async * @param {{enabled: boolean}} param0 * @param {boolean} param0.enabled * @returns {Promise} */ versioning({ enabled }: { enabled: boolean; }): Promise; /** * Toggle login alerts on/off. * @date 2/20/2024 - 7:16:54 AM * * @public * @async * @param {{enabled: boolean}} param0 * @param {boolean} param0.enabled * @returns {Promise} */ loginAlerts({ enabled }: { enabled: boolean; }): Promise; /** * Update account nickname. * @date 2/20/2024 - 7:17:43 AM * * @public * @async * @param {{nickname: string}} param0 * @param {string} param0.nickname * @returns {Promise} */ updateNickname({ nickname }: { nickname: string; }): Promise; /** * Toggle appear offline status on/off. * @date 2/20/2024 - 7:18:12 AM * * @public * @async * @param {{ enabled: boolean }} param0 * @param {boolean} param0.enabled * @returns {Promise} */ appearOffline({ enabled }: { enabled: boolean; }): Promise; /** * Fetch a user's public profile. * @date 2/20/2024 - 7:19:15 AM * * @public * @async * @param {{id: number}} param0 * @param {number} param0.id * @returns {Promise} */ profile({ id }: { id: number; }): Promise; /** * Update desktop last active timestamp. * @date 2/20/2024 - 7:20:56 AM * * @public * @async * @param {{timestamp: number}} param0 * @param {number} param0.timestamp * @returns {Promise} */ updateDesktopLastActive({ timestamp }: { timestamp: number; }): Promise; /** * Lock a resource. * * @public * @async * @param {{ * resource: string * lockUUID: string * maxTries?: number * tryTimeout?: number * }} param0 * @param {string} param0.resource * @param {string} param0.lockUUID * @param {number} [param0.maxTries=86400] * @param {number} [param0.tryTimeout=1000] * @returns {Promise} */ acquireResourceLock({ resource, lockUUID, maxTries, tryTimeout }: { resource: string; lockUUID: string; maxTries?: number; tryTimeout?: number; }): Promise; /** * Unlock a resource. * * @public * @async * @param {{ resource: string; lockUUID: string }} param0 * @param {string} param0.resource * @param {string} param0.lockUUID * @returns {Promise} */ releaseResourceLock({ resource, lockUUID }: { resource: string; lockUUID: string; }): Promise; /** * Refresh a resource lock. * * @public * @async * @param {{ resource: string; lockUUID: string }} param0 * @param {string} param0.resource * @param {string} param0.lockUUID * @returns {Promise} */ refreshResourceLock({ resource, lockUUID }: { resource: string; lockUUID: string; }): Promise; /** * Fetch resource lock status. * * @public * @async * @param {{ resource: string }} param0 * @param {string} param0.resource * @returns {Promise} */ resourceLockStatus({ resource }: { resource: string; }): Promise; } export default User;