import { Deferred } from "@welshman/lib"; import { Filter, TrustedEvent } from "@welshman/util"; import { AdapterContext } from "./adapter.js"; import { Tracker } from "./tracker.js"; export type BaseRequestOptions = { signal?: AbortSignal; tracker?: Tracker; context?: AdapterContext; autoClose?: boolean; isEventValid?: (event: TrustedEvent, url: string) => boolean; isEventDeleted?: (event: TrustedEvent, url: string) => boolean; onEvent?: (event: TrustedEvent, url: string) => void; onDeleted?: (event: unknown, url: string) => void; onInvalid?: (event: unknown, url: string) => void; onFiltered?: (event: TrustedEvent, url: string) => void; onDuplicate?: (event: TrustedEvent, url: string) => void; onDisconnect?: (url: string) => void; onEose?: (url: string) => void; onClosed?: (message: string, url: string) => void; onClose?: () => void; }; export type RequestOneOptions = BaseRequestOptions & { relay: string; filters: Filter[]; }; export declare const requestOne: (options: RequestOneOptions) => Deferred; export type RequestOptions = BaseRequestOptions & { relays: string[]; filters: Filter[]; threshold?: number; }; export declare const request: (options: RequestOptions) => Promise; export type LoaderOptions = { delay: number; timeout?: number; threshold?: number; context?: AdapterContext; isEventValid?: (event: TrustedEvent, url: string) => boolean; isEventDeleted?: (event: TrustedEvent, url: string) => boolean; }; export type LoadOptions = { relays: string[]; filters: Filter[]; signal?: AbortSignal; onEvent?: (event: TrustedEvent, url: string) => void; onDisconnect?: (url: string) => void; onEose?: (url: string) => void; onClose?: () => void; }; export type Loader = (options: LoadOptions) => Promise; /** * Creates a convenience function which returns a promise of events from a request. * It may return early if filter cardinality is known, and it delays requests in order * to implement batching * @param options - LoaderOptions * @returns - a load function */ export declare const makeLoader: (options: LoaderOptions) => Loader; export declare const load: Loader; //# sourceMappingURL=request.d.ts.map