import type { SignedUrlRequest, FileUploadEntityType } from '@explorins/pers-sdk'; /** * React hook for file operations in the PERS SDK * * Provides methods for generating signed URLs for file uploads and downloads, * media optimization, and secure file access. Supports various entity types * and customizable expiration times. * * @returns File hook with methods for file management * * @example * ```typescript * function FileUploadComponent() { * const { getSignedPutUrl, getSignedGetUrl, optimizeMedia } = useFiles(); * * const uploadFile = async (entityId: string, file: File) => { * try { * const uploadUrl = await getSignedPutUrl( * entityId, * 'profile', * 'jpg' * ); * * // Upload file to the signed URL * await fetch(uploadUrl, { * method: 'PUT', * body: file * }); * * // Get download URL * const downloadUrl = await getSignedGetUrl(entityId, 'profile'); * console.log('File uploaded, download URL:', downloadUrl); * } catch (error) { * console.error('File upload failed:', error); * } * }; * * return uploadFile('user-123', e.target.files[0])} />; * } * ``` */ export declare const useFiles: () => { getSignedPutUrl: (entityId: string, entityType: FileUploadEntityType, fileExtension: string) => Promise; getSignedGetUrl: (entityId: string, entityType: FileUploadEntityType, expireSeconds?: number) => Promise; getSignedUrl: (request: SignedUrlRequest) => Promise; optimizeMedia: (url: string, width?: number, height?: number) => Promise; isAvailable: boolean; }; export type FileHook = ReturnType; //# sourceMappingURL=useFiles.d.ts.map