/* This file is part of web3.js. web3.js is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. web3.js is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with web3.js. If not, see . */ /** * @file index.d.ts * @author Josh Stevens , Samuel Furter * @date 2018 */ import * as net from 'net'; import { BatchRequest, provider, Providers, Extension } from 'web3-core'; import { Network } from 'web3-net'; export class Shh { constructor(); constructor(provider: provider); constructor(provider: provider, net: net.Socket); readonly givenProvider: any; static readonly givenProvider: any; static readonly providers: Providers; readonly currentProvider: provider; BatchRequest: new () => BatchRequest; setProvider(provider: provider): boolean; extend(extension: Extension): any; net: Network; getVersion( callback?: (error: Error, version: string) => void ): Promise; getInfo(callback?: (error: Error, info: Info) => void): Promise; setMaxMessageSize( size: number, callback?: (error: Error, result: boolean) => void ): Promise; setMinPoW( pow: number, callback?: (error: Error, result: boolean) => void ): Promise; markTrustedPeer( enode: string, callback?: (error: Error, result: boolean) => void ): Promise; newKeyPair(callback?: (error: Error, key: string) => void): Promise; addPrivateKey( privateKey: string, callback?: (error: Error, privateKey: string) => void ): Promise; deleteKeyPair( id: string, callback?: (error: Error, result: boolean) => void ): Promise; hasKeyPair( id: string, callback?: (error: Error, result: boolean) => void ): Promise; getPublicKey( id: string, callback?: (error: Error, publicKey: string) => void ): Promise; getPrivateKey( id: string, callback?: (error: Error, privateKey: string) => void ): Promise; newSymKey(callback?: (error: Error, key: string) => void): Promise; addSymKey( symKey: string, callback?: (error: Error, key: string) => void ): Promise; generateSymKeyFromPassword( password: string, callback?: (error: Error, key: string) => void ): Promise; hasSymKey( id: string, callback?: (error: Error, result: boolean) => void ): Promise; getSymKey( id: string, callback?: (error: Error, key: string) => void ): Promise; deleteSymKey( id: string, callback?: (error: Error, result: boolean) => void ): Promise; post( object: PostWithSymKey | PostWithPubKey, callback?: (error: Error, result: string) => void ): Promise; subscribe( string: 'messages', options: SubscriptionOptions, callback?: ( error: Error, message: Notification, subscription: any ) => void ): Subscribe; newMessageFilter( options?: SubscriptionOptions, callback?: (error: Error, result: string) => void ): Promise; deleteMessageFilter( id: string, callback?: (error: Error, result: string) => void ): Promise; getFilterMessages( id: string, callback?: (error: Error, result: string) => void ): Promise; } export interface Info { messages: number; maxMessageSize: number; memory: number; minPow: number; } export interface PostBase { sig?: string; ttl: number; topic: string; payload: string; padding?: number; powTime?: number; powTarget?: number; targetPeer?: number; } export interface PostWithSymKey extends PostBase { symKeyID: string; } export interface PostWithPubKey extends PostBase { pubKey: string; } export interface SubscriptionOptions { symKeyID?: string; privateKeyID?: string; sig?: string; topics?: string[]; minPow?: number; allowP2P?: boolean; ttl?: number; } export interface Notification { hash: string; sig?: string; recipientPublicKey?: string; timestamp: string; ttl: number; topic: string; payload: string; padding: number; pow: number; } export interface Subscribe { on(type: 'data', handler: (data: Notification) => void): void; on(type: 'error', handler: (data: Error) => void): void; }