/** * Reports Resource * * Read-only operations for generated report files. * Reports are generated from alerts and stored in S3 with hash-based deduplication. */ import type { ListOptions, PaginatedResponse, ReportDownloadUrl, ReportFilter, ReportResponse, ReportSort } from "@artu-ai/shared"; export type { ReportFilter, ReportSort, ReportDownloadUrl }; /** * Report model (read-only) */ export type Report = ReportResponse; /** * Resource manager for report operations. * * Reports are generated from alerts and stored in S3. This resource provides * read-only access to retrieve, list, and download reports. * * @example * ```typescript * // Get a specific report * const report = await sdk.reports.retrieve("report_123"); * * // List reports for an alert * const reports = await sdk.reports.listByAlert("alert_123"); * * // Get download URL * const { url } = await sdk.reports.getDownloadUrl("report_123"); * ``` */ export declare class ReportsResource { private readonly trpc; /** * Retrieves a report by ID. */ retrieve(id: string): Promise; /** * Lists reports with optional filtering and pagination. */ list(options?: ListOptions): Promise>; /** * Lists reports for a specific alert with pagination. * * @param alertId - The alert ID * @param options - Pagination and filter options */ listByAlert(alertId: string, options?: { /** If true (default), only returns current versions */ currentOnly?: boolean; /** Pagination limit */ limit?: number; /** Pagination offset */ offset?: number; /** Include total count in response */ includeTotalCount?: boolean; /** Sort options */ sort?: ReportSort; }): Promise>; /** * Counts reports matching the given filter. * * @param filter - Optional filter criteria * @returns The count of matching reports */ count(filter?: ReportFilter): Promise; /** * Gets a presigned download URL for a report file. * * The URL is valid for a limited time (typically 15 minutes). * * @param id - Report ID * @returns Presigned URL with metadata */ getDownloadUrl(id: string): Promise; }