import type { Transport, PageResult } from '@23blocks/contracts'; import type { Asset, CreateAssetRequest, UpdateAssetRequest, ListAssetsParams, TransferAssetRequest, AssignAssetRequest } from '../types/asset.js'; import type { AddToCategoryRequest, AddPartsRequest, RemovePartsRequest, UpdateMaintenanceRequest, LendAssetRequest, CreateOTPRequest, OTPResponse } from '../types/asset-image.js'; export interface AssetsService { /** * List assets with optional filtering and sorting. * @returns Paginated list of Asset records with metadata. */ list(params?: ListAssetsParams): Promise>; /** * Get a single asset by unique ID. * @returns The matching Asset record. */ get(uniqueId: string): Promise; /** * Create a new asset. * @returns The newly created Asset record. */ create(data: CreateAssetRequest): Promise; /** * Update an existing asset. * @returns The updated Asset record. */ update(uniqueId: string, data: UpdateAssetRequest): Promise; /** * Delete an asset (moves to trash). */ delete(uniqueId: string): Promise; /** * List trashed (soft-deleted) assets. * @returns Paginated list of trashed Asset records. */ listTrash(): Promise>; /** * Transfer an asset to a new location. * @returns The Asset record with the updated location. */ transfer(uniqueId: string, data: TransferAssetRequest): Promise; /** * Assign an asset to a user. * @returns The Asset record with the assignment. */ assign(uniqueId: string, data: AssignAssetRequest): Promise; /** * Unassign an asset from its current assignee. * @returns The Asset record with the assignment removed. */ unassign(uniqueId: string): Promise; /** * List assets at a specific location. * @returns Paginated list of Asset records at the location. */ listByLocation(locationUniqueId: string, params?: ListAssetsParams): Promise>; /** * List assets assigned to a specific user. * @returns Paginated list of Asset records for the assignee. */ listByAssignee(assignedToUniqueId: string, params?: ListAssetsParams): Promise>; /** * Add an asset to a category. * @returns The updated Asset record. */ addToCategory(uniqueId: string, data: AddToCategoryRequest): Promise; /** * Add parts (sub-assets) to an asset. * @returns The updated Asset record. */ addParts(uniqueId: string, data: AddPartsRequest): Promise; /** * Remove parts (sub-assets) from an asset. * @returns The updated Asset record. */ removeParts(uniqueId: string, data: RemovePartsRequest): Promise; /** * Update maintenance information for an asset. * @returns The updated Asset record. */ updateMaintenance(uniqueId: string, data: UpdateMaintenanceRequest): Promise; /** * Lend an asset to a user. * @returns The Asset record with lending information. */ lend(uniqueId: string, data: LendAssetRequest): Promise; /** * Create a one-time password for asset verification. * @returns OTPResponse with `code` and `expiresAt`. */ createOTP(uniqueId: string, data?: CreateOTPRequest): Promise; } export declare function createAssetsService(transport: Transport, _config: { apiKey: string; }): AssetsService; //# sourceMappingURL=assets.service.d.ts.map