declare const enum IpcChannel {
  NHENTAI_SAVE_FAVORITES = 'NHENTAI_SAVE_FAVORITES',
}

interface IIpcPayload {
  id: string;
  data: unknown;
}

interface IIpcResponse {
  id: string;
  success: boolean;
  data?: unknown;
  // just the error message
  error?: string;
}

interface IIpcClient {
  ask: (channel: IpcChannel, data?: unknown) => Promise<unknown>;
}

type IpcHandler = (data?: unknown) => Promise<unknown>;

// eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/typescript-eslint/typescript-eslint/issues/2714
interface IIpcController {
  get(): IIpcController;
}
