declare module 'http-signature' { import { IncomingMessage, ClientRequest } from 'http'; interface ISignature { keyId: string; algorithm: string; headers: string[]; signature: string; } interface IOptions { headers?: string[]; algorithm?: string; strict?: boolean; authorizationHeaderName?: string; } interface IParseRequestOptions extends IOptions { clockSkew?: number; } interface IParsedSignature { scheme: string; params: ISignature; signingString: string; algorithm: string; keyId: string; } type RequestSignerConstructorOptions = IRequestSignerConstructorOptionsFromProperties | IRequestSignerConstructorOptionsFromFunction; interface IRequestSignerConstructorOptionsFromProperties { keyId: string; key: string | Buffer; algorithm?: string; } interface IRequestSignerConstructorOptionsFromFunction { sign?: (data: string, cb: (err: any, sig: ISignature) => void) => void; } class RequestSigner { constructor(options: RequestSignerConstructorOptions); public writeHeader(header: string, value: string): string; public writeDateHeader(): string; public writeTarget(method: string, path: string): void; public sign(cb: (err: any, authz: string) => void): void; } interface ISignRequestOptions extends IOptions { keyId: string; key: string; httpVersion?: string; } export function parse(request: IncomingMessage, options?: IParseRequestOptions): IParsedSignature; export function parseRequest(request: IncomingMessage, options?: IParseRequestOptions): IParsedSignature; export function sign(request: ClientRequest, options: ISignRequestOptions): boolean; export function signRequest(request: ClientRequest, options: ISignRequestOptions): boolean; export function createSigner(): RequestSigner; export function isSigner(obj: any): obj is RequestSigner; export function sshKeyToPEM(key: string): string; export function sshKeyFingerprint(key: string): string; export function pemToRsaSSHKey(pem: string, comment: string): string; export function verify(parsedSignature: IParsedSignature, pubkey: string | Buffer): boolean; export function verifySignature(parsedSignature: IParsedSignature, pubkey: string | Buffer): boolean; export function verifyHMAC(parsedSignature: IParsedSignature, secret: string): boolean; }