/** Quick-action window bridge: `window.quickApi` for verifying or signing one file from the system menu. */
import { call } from "../transport";

const api = Object.freeze({
  state: () => call<Record<string, unknown>>("quick_state", "quick:state"),
  unlock: (password: string) => call<Record<string, unknown>>("quick_unlock", "quick:unlock", { password }),
  verify: () => call<Record<string, unknown>>("quick_verify", "quick:verify"),
  verifyWithKey: (fingerprint?: string) => call<Record<string, unknown>>("quick_verify_key", "quick:verifyWithKey", { fingerprint: fingerprint || "" }),
  verifyWithKeyserver: (fingerprint?: string) => call<Record<string, unknown>>("quick_verify_keyserver", "quick:verifyWithKeyserver", { fingerprint: fingerprint || "" }),
  sign: (request: { id: string; component?: string | null; passphrase: string; overwrite?: boolean }) =>
    call<Record<string, unknown>>("quick_sign", "quick:sign", request),
  openMain: () => call<Record<string, unknown>>("quick_open_main", "quick:openMain"),
  close: () => call<Record<string, unknown>>("window_control", "window:control", { action: "close" })
});
Object.defineProperty(window, "quickApi", { value: api, writable: false, configurable: false, enumerable: true });
