/// <reference types="node" />

import { ChildProcess } from 'child_process'

/**
 Node Pebble – Node.js wrapper for Let’s Encrypt’s Pebble ACME test server.
*/
export default class Pebble {
  /**
    Spawn Pebble process and resolve when server is ready.

    @param args Optional space‑delimited string or array of arguments to pass to Pebble.
    @param env Optional environment variables for Pebble process.
    @returns A promise that resolves to spawned `ChildProcess` instance.
  */
  static ready(args?: string | string[] | Record<string, any>, env?: Record<string, any>): Promise<ChildProcess>

  /**
    Shut down Pebble server.

    @returns A promise that resolves when the process has exited.
  */
  static shutdown(): Promise<void>
}
