import { contextBridge, ipcRenderer } from 'electron';

require('./rt/electron-rt');
//////////////////////////////
// User Defined Preload scripts below
console.log('User Preload!');

/**
 * Expose secure IPC APIs to the renderer process.
 * 
 * This creates a bridge between the sandboxed renderer and the main process,
 * allowing secure file operations while maintaining Electron's security model.
 */
contextBridge.exposeInMainWorld('electronAPI', {
  /**
   * Export data to the user's Downloads folder.
   * 
   * @param fileName - The name of the file to save (e.g., 'backup-2025-07-06.json')
   * @param data - The content to write to the file (string)
   * @returns Promise<{success: boolean, path?: string, error?: string}>
   * 
   * @example
   * ```typescript
   * const result = await window.electronAPI.exportData('my-backup.json', JSON.stringify(data));
   * if (result.success) {
   *   console.log('File saved to:', result.path);
   * } else {
   *   console.error('Export failed:', result.error);
   * }
   * ```
   */
  exportData: (fileName: string, data: string) => 
    ipcRenderer.invoke('export-data-to-downloads', fileName, data)
});
