OverviewFilesCommitsIssuesDocsReleasesPeers

mirall-cli / node_modules / bare-tls / index.d.ts

61 lines · typescript ref:
import { Duplex, DuplexEvents } from 'bare-stream'
import EventEmitter from 'bare-events'
import constants from './lib/constants'
import TLSError from './lib/errors'

export { constants, TLSError as errors }

export interface TLSSocketEvents extends DuplexEvents {
  connect: []
}

export interface TLSSocketOptions {
  isServer?: boolean
  cert?: ArrayBufferView
  key?: ArrayBufferView
  host?: string
  rejectUnauthorized?: boolean
  ca?: ArrayBufferView
  alpnProtocols?: string[]
  eagerOpen?: boolean
  allowHalfOpen?: boolean
  readBufferSize?: number
}

export interface TLSSocket<M extends TLSSocketEvents = TLSSocketEvents> extends Duplex<M> {
  readonly socket: Duplex
  readonly encrypted: true
  readonly alpnProtocol: string | null
}

export class TLSSocket {
  constructor(socket: Duplex, opts?: TLSSocketOptions)
}

export { TLSSocket as Socket }

export interface TLSNetServerEvents {
  listening: []
  connection: [socket: TLSSocket]
  error: [err: Error]
  close: []
}

export interface TLSNetServer extends EventEmitter<TLSNetServerEvents> {
  readonly listening: boolean
}

export function createServer(
  opts?: TLSSocketOptions,
  onconnection?: (socket: TLSSocket) => void
): TLSNetServer

export function createConnection(
  opts: TLSSocketOptions & { port: number; host?: string },
  onconnect?: () => void
): TLSSocket

export function createConnection(port: number, host?: string, onconnect?: () => void): TLSSocket

export { createConnection as connect }