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