import HttpCachingChain from './http-caching-chain'; import { HttpChain } from './http-caching-chain'; import HttpChainClient from './http-chain-client'; import FastestNodeClient from './fastest-node-client'; import MultiBeaconNode from './multi-beacon-node'; import { roundAt, roundTime } from './util'; import { defaultClient, quicknetClient, testnetDefaultClient, testnetQuicknetClient } from './defaults'; export interface DrandNode { chains(): Promise>; health(): Promise; } export interface Chain { baseUrl: string; info(): Promise; } export type ChainOptions = { disableBeaconVerification: boolean; noCache: boolean; chainVerificationParams?: ChainVerificationParams; }; export declare const defaultChainOptions: ChainOptions; export type ChainVerificationParams = { chainHash: string; publicKey: string; }; export type HealthCheckResponse = { status: number; current: number; expected: number; }; export interface ChainClient { options: ChainOptions; latest(): Promise; get(roundNumber: number): Promise; chain(): Chain; } export declare function fetchBeacon(client: ChainClient, roundNumber?: number): Promise; export declare function fetchBeaconByTime(client: ChainClient, time: number): Promise; export declare function watch(client: ChainClient, abortController: AbortController, options?: WatchOptions): AsyncGenerator; export type WatchOptions = { retriesOnFailure: number; }; export type ChainInfo = { public_key: string; period: number; genesis_time: number; hash: string; groupHash: string; schemeID: string; metadata: { beaconID: string; }; }; export type RandomnessBeacon = G2ChainedBeacon | G2UnchainedBeacon | G1UnchainedBeacon | G1RFC9380Beacon | Bn254OnG1Beacon; export type G2ChainedBeacon = { round: number; randomness: string; signature: string; previous_signature: string; }; export type G2UnchainedBeacon = { round: number; randomness: string; signature: string; _phantomg2?: never; }; export type G1UnchainedBeacon = { round: number; randomness: string; signature: string; _phantomg1?: never; }; export type G1RFC9380Beacon = { round: number; randomness: string; signature: string; _phantomg19380?: never; }; export type Bn254OnG1Beacon = { round: number; randomness: string; signature: string; _phantombn254ong1?: never; }; export declare function isChainedBeacon(value: any, info: ChainInfo): value is G2ChainedBeacon; export declare function isUnchainedBeacon(value: any, info: ChainInfo): value is G2UnchainedBeacon; export declare function isG1G2SwappedBeacon(value: any, info: ChainInfo): value is G1UnchainedBeacon; export declare function isG1Rfc9380(value: any, info: ChainInfo): value is G1RFC9380Beacon; export declare function isBn254OnG1(value: any, info: ChainInfo): value is Bn254OnG1Beacon; export { HttpChain, HttpChainClient, HttpCachingChain, MultiBeaconNode, FastestNodeClient, roundAt, roundTime, defaultClient, quicknetClient, testnetDefaultClient, testnetQuicknetClient, };