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 <input type="file" onChange={(e) => uploadFile('user-123', e.target.files[0])} />;
 * }
 * ```
 */
export declare const useFiles: () => {
    getSignedPutUrl: (entityId: string, entityType: FileUploadEntityType, fileExtension: string) => Promise<string>;
    getSignedGetUrl: (entityId: string, entityType: FileUploadEntityType, expireSeconds?: number) => Promise<string>;
    getSignedUrl: (request: SignedUrlRequest) => Promise<string>;
    optimizeMedia: (url: string, width?: number, height?: number) => Promise<string>;
    isAvailable: boolean;
};
export type FileHook = ReturnType<typeof useFiles>;
//# sourceMappingURL=useFiles.d.ts.map