/// import { HAPEncryptionContext, HAPStates } from "./types/hap-proxy"; import { Socket } from "net"; import { HTTPRequest, HTTPRoutes, HTTPServerResponse } from "./lib/http-protocol"; import { EventEmitter } from "./lib/EventEmitter"; import { Advertiser } from "./lib/Advertiser"; import { AccessoryInfo } from "./storage/AccessoryInfo"; import { ParsedUrlQuery } from "querystring"; import { SrpServer } from "fast-srp-hap"; export declare type ServerPairSetupSession = { connection: HAPServerConnection; nextState: HAPStates; srpServer: SrpServer; sharedSecret: Buffer; sessionKey: Buffer; clientId: string; clientLTPK: Buffer; }; export declare type ServerPairVerifySession = { nextState: HAPStates; secretKey: Buffer; publicKey: Buffer; clientPublicKey: Buffer; sharedSecret: Buffer; sessionKey: Buffer; }; export declare type HTTPServerResponseCallback = (error?: Error, response?: HTTPServerResponse) => void; export declare enum HAPServerEvents { CONNECTION = "connection", ACCESSORIES = "accessories", GET_CHARACTERISTICS = "get-characteristics", SET_CHARACTERISTICS = "set-characteristics", PREPARE_WRITE = "prepare", RESOURCE = "resource", PAIRED = "paired", UNPAIRED = "unpaired" } export declare type HAPServerEventMap = { [HAPServerEvents.CONNECTION]: (connection: HAPServerConnection) => void; [HAPServerEvents.ACCESSORIES]: (connection: HAPServerConnection, callback: HTTPServerResponseCallback) => void; [HAPServerEvents.GET_CHARACTERISTICS]: (connection: HAPServerConnection, query: ParsedUrlQuery, callback: HTTPServerResponseCallback) => void; [HAPServerEvents.SET_CHARACTERISTICS]: (connection: HAPServerConnection, writeRequest: Buffer, callback: HTTPServerResponseCallback) => void; [HAPServerEvents.PREPARE_WRITE]: (connection: HAPServerConnection, prepareRequest: Buffer, callback: HTTPServerResponseCallback) => void; [HAPServerEvents.RESOURCE]: (connection: HAPServerConnection, resourceRequest: Buffer, callback: HTTPServerResponseCallback) => void; [HAPServerEvents.PAIRED]: () => void; [HAPServerEvents.UNPAIRED]: () => void; }; export declare class HAPServer extends EventEmitter { accessoryInfo: AccessoryInfo; private tcpServer; private connections; advertiser: Advertiser; private routeHandlers; private currentPairSetupSession?; constructor(accessoryInfo: AccessoryInfo); listen(targetPort?: number): void; stop(): void; private handleListening; private handleConnection; private handleConnectionClosed; private handleClientUnpaired; private handleIdentify; private handlePair; private abortPairing; private handlePairM1; private handlePairM3; private handlePairM5; private generatePairM5Response; private handlePairVerify; private abortPairVerify; private handlePairVerifyM1; private handlePairVerifyM3; private handlePairings; private abortPairings; private addPairing; private removePairing; private listPairings; private handleAccessories; private handleCharacteristics; private handlePrepare; private handleResource; } export declare enum HAPServerConnectionEvents { DISCONNECTED = "disconnected" } export declare type HAPServerConnectionEventMap = { [HAPServerConnectionEvents.DISCONNECTED]: () => void; }; export declare type HTTPRequestHandler = (connection: HAPServerConnection, request: HTTPRequest) => Promise; export declare const NOT_FOUND_HANDLER: HTTPRequestHandler; export declare class HAPServerConnection extends EventEmitter { private readonly socket; private readonly parser; private readonly routeHandler; sessionID: string; remoteAddress: string; pairVerifySession?: Partial; encryptionContext?: HAPEncryptionContext; clientId?: string; pairingVerified: boolean; private processingRequest; private disconnectAfterResponse; private socketClosed; private eventQueue; private httpWorkingQueue; constructor(socket: Socket, routeHandler: Record); disconnect(): void; disconnectAfterWrite(): void; private handleData; private sendResponse; sendRawEvent(data: Buffer): void; flushEventQueue(): void; private handleClose; private handleError; } //# sourceMappingURL=HAPServer.d.ts.map