declare module 'bitcoin-core' { interface Auth { pass?: string; user?: string; } interface MethodFeature { supported: boolean; } interface Method { features: Record; supported: boolean; } interface RequesterConfig { methods: Record; version?: string; } interface Parser { rpc(response: any): any; rest(extension: string, response: any): any; } interface RequestConfig { baseUrl: string; headers: Record; timeout: number; } interface Request { getAsync(url: string, options?: Record): Promise; postAsync(url: string, options?: Record): Promise; defaults(config: RequestConfig): Request; } interface ClientConfig { headers?: Record; host?: string; logger?: any; password?: string; timeout?: number; username?: string; version?: string; wallet?: string; allowDefaultWallet?: boolean; } interface ReturnFormatOptions { extension?: 'json' | 'bin' | 'hex'; } interface BlockHashOptions extends ReturnFormatOptions { summary?: boolean; } interface UnspentTransactionOutput { id: string; index: number; } class Client { auth: Auth | null; hasNamedParametersSupport: boolean; headers: Record; host: string; password?: string; timeout: number; wallet?: string; version?: string; methods: Record; request: Request; requester: any; // Assume Requester type parser: Parser; constructor(config?: ClientConfig); command(...args: any[]): Promise; getTransactionByHash( hash: string, options?: ReturnFormatOptions ): Promise; getBlockByHash( hash: string, options?: BlockHashOptions ): Promise; getBlockHeadersByHash( hash: string, count: number, options?: ReturnFormatOptions ): Promise; getBlockchainInformation(): Promise; getUnspentTransactionOutputs( outpoints: UnspentTransactionOutput[], options?: ReturnFormatOptions ): Promise; getMemoryPoolContent(): Promise; getMemoryPoolInformation(): Promise; } export = Client; }