import { JSONRPCClient, JSONRPCRequest, JSONRPCResponse, SendRequest } from 'json-rpc-2.0'; /** * Authentication challenge parameters sent by the server when a protected resource is requested. */ export interface RpcAuthChallenge { auth_type: string; nonce: number; nc?: number; realm: string; algorithm: string; } /** * Authentication response parameters supplied with each authenticated request. */ export interface RpcAuthResponse { realm: string; username: string; nonce: number; cnonce: number; response: string; algorithm: 'SHA-256'; } /** * A request with authentication response parameters. */ export interface JSONRPCRequestWithAuth extends JSONRPCRequest { auth?: RpcAuthResponse; } /** * Extends JSONRPCClient to seamlessly handle authentication. */ export declare class JSONRPCClientWithAuthentication extends JSONRPCClient { protected password?: string | undefined; /** * Holds the current request ID. This number is incremented for each new request. */ protected requestId: number; /** * Authentication response parameters sent with each request if the connection has been authenticated. */ protected auth?: RpcAuthResponse; /** * @param password - The password to authenticate with. */ constructor(send: SendRequest, password?: string | undefined); requestAdvanced(request: JSONRPCRequest, clientParams?: ClientParams): PromiseLike; requestAdvanced(requests: JSONRPCRequest[], clientParams?: ClientParams): PromiseLike; /** * Handles 401 errors by parsing the authentication challenge, generating an authentication response * and supplying that response with each subsequent request. */ protected requestWithAuthentication(request: JSONRPCRequest, clientParams?: ClientParams): Promise; /** * Creates an authentication response based on the given challenge and the configured password. * @param params - Authentication challenge params. */ protected createAuthResponse(params: RpcAuthChallenge): RpcAuthResponse; } //# sourceMappingURL=auth.d.ts.map