declare module 'guacamole-lite/lib/ClientConnection.js' {
  import { EventEmitter } from 'node:events'
  export default class ClientConnection extends EventEmitter {
    constructor(
      clientOptions: unknown,
      connectionId: string | number,
      webSocket: unknown,
      query: Record<string, unknown>,
      callbacks: { processConnectionSettings: (settings: unknown, cb: (err: unknown, settings: unknown) => void) => void },
    )
    connect(guacdOptions: { host: string; port: number }): void
  }
}

declare module 'guacamole-lite/lib/Crypt.js' {
  export default class Crypt {
    constructor(cypher: string, key: string)
    encrypt(data: unknown): string
    decrypt(encoded: string): unknown
  }
}
