import type { Comment, ListPhotosQueryParams, PaginationQueryParams, Photo, Tag } from "../interfaces.js"; import type { HttpClient } from "../http/HttpClient.js"; import { RequestOptions, UserScopedRequestOptions } from "./utils.js"; /** * Resource for working with photos and their nested relationships. Provides access to nested * helpers for tags, comments, and descriptions. */ export declare class PhotosResource { private readonly http; readonly tags: PhotoTagsResource; readonly comments: PhotoCommentsResource; readonly descriptions: PhotoDescriptionsResource; constructor(http: HttpClient); /** * List photos with optional filtering parameters. * * @param query Pagination and filtering parameters mirrored from the spec. * @param options Optional request overrides such as alternate auth token or abort signal. * @returns Array of {@link Photo} records. * @throws {APIError} When the API responds with an error status. */ list(query?: ListPhotosQueryParams, options?: RequestOptions): Promise; /** * Retrieve a single photo by identifier. * * @param photoId Identifier of the photo to fetch. * @param options Optional request overrides such as alternate auth token or abort signal. * @returns The requested {@link Photo}. * @throws {APIError} When the API responds with an error status. */ retrieve(photoId: string, options?: RequestOptions): Promise; /** * Update a photo, typically toggling the internal flag. * * @param photoId Identifier of the photo to update. * @param payload Mutable photo attributes forwarded to the API. * @param options Optional request overrides such as alternate auth token or abort signal. * @returns The updated {@link Photo}. * @throws {APIError} When the API responds with an error status. */ update(photoId: string, payload: { internal?: boolean; }, options?: RequestOptions): Promise; /** * Delete a photo. * * @param photoId Identifier of the photo to delete. * @param options Optional request overrides; supply `X-CompanyCam-User` to attribute the action. * @returns Resolves to void when deletion succeeds. * @throws {APIError} When the API responds with an error status. */ delete(photoId: string, options?: UserScopedRequestOptions): Promise; } /** * Manage tags applied to a photo. */ export declare class PhotoTagsResource { private readonly http; constructor(http: HttpClient); /** * List tags assigned to the specified photo. * * @param photoId Identifier of the photo whose tags should be retrieved. * @param options Optional request overrides such as alternate auth token or abort signal. * @returns Array of {@link Tag} records. * @throws {APIError} When the API responds with an error status. */ list(photoId: string, options?: RequestOptions): Promise; /** * Create or assign tags to the photo using the spec-defined endpoint. * * @param photoId Identifier of the target photo. * @param tags Tags to create or assign, forwarded using the spec structure. * @param options Optional request overrides such as alternate auth token or abort signal. * @returns The created tag association payload returned by the API. * @throws {APIError} When the API responds with an error status. */ create(photoId: string, tags: string[], options?: RequestOptions): Promise; } /** * Manage comments on a photo. */ export declare class PhotoCommentsResource { private readonly http; constructor(http: HttpClient); /** * List comments attached to the specified photo. * * @param photoId Identifier of the photo to inspect. * @param query Optional pagination controls (`page`, `per_page`). * @param options Optional request overrides such as alternate auth token or abort signal. * @returns Array of {@link Comment} records. * @throws {APIError} When the API responds with an error status. */ list(photoId: string, query?: PaginationQueryParams, options?: RequestOptions): Promise; /** * Create a comment on the photo. * * @param photoId Identifier of the photo to comment on. * @param content Comment text as required by the spec. * @param options Optional request overrides; supply `X-CompanyCam-User` to attribute the action. * @returns The created {@link Comment}. * @throws {APIError} When the API responds with an error status. */ create(photoId: string, content: string, options?: UserScopedRequestOptions): Promise; } /** * Manage the editable description content for a photo. */ export declare class PhotoDescriptionsResource { private readonly http; constructor(http: HttpClient); /** * Update the description of a photo. * * @param photoId Identifier of the photo to update. * @param description Description text to store. * @param options Optional request overrides such as alternate auth token or abort signal. * @returns The updated {@link Photo}. * @throws {APIError} When the API responds with an error status. */ update(photoId: string, description: string, options?: RequestOptions): Promise; } //# sourceMappingURL=Photos.d.ts.map