import type { QueryFunc } from './types.js'; import type { QueryEvent } from '../index.js'; import type { RoutingTable } from '../routing-table/index.js'; import type { ComponentLogger, Metrics, PeerId, RoutingOptions, Startable } from '@libp2p/interface'; import type { ConnectionManager } from '@libp2p/interface-internal'; import type { DeferredPromise } from 'p-defer'; export interface CleanUpEvents { cleanup: CustomEvent; } export interface QueryManagerInit { logPrefix: string; metricsPrefix: string; disjointPaths?: number; alpha?: number; initialQuerySelfHasRun: DeferredPromise; allowQueryWithZeroPeers?: boolean; routingTable: RoutingTable; } export interface QueryManagerComponents { peerId: PeerId; metrics?: Metrics; logger: ComponentLogger; connectionManager: ConnectionManager; } export interface QueryOptions extends RoutingOptions { isSelfQuery?: boolean; } /** * Keeps track of all running queries */ export declare class QueryManager implements Startable { disjointPaths: number; private readonly alpha; private shutDownController; private running; private readonly logger; private readonly peerId; private readonly connectionManager; private readonly routingTable; private initialQuerySelfHasRun?; private readonly logPrefix; private readonly allowQueryWithZeroPeers; constructor(components: QueryManagerComponents, init: QueryManagerInit); isStarted(): boolean; /** * Starts the query manager */ start(): Promise; /** * Stops all queries */ stop(): Promise; run(key: Uint8Array, queryFunc: QueryFunc, options?: QueryOptions): AsyncGenerator; } //# sourceMappingURL=manager.d.ts.map