@ceramicnetwork/core
Version:
Typescript implementation of the Ceramic protocol
38 lines • 1.49 kB
TypeScript
import { type CAR } from 'cartonne';
import { Observable } from 'rxjs';
import { DiagnosticsLogger, FetchRequest, AbortOptions, Networks } from '@ceramicnetwork/common';
import { StreamID } from '@ceramicnetwork/streamid';
import { CID } from 'multiformats/cid';
export declare type ReconApiConfig = {
enabled: boolean;
url: string | Promise<string>;
feedEnabled: boolean;
network: Networks;
};
export interface ReconEvent {
cid: CID;
data: CAR | null;
}
export interface ReconEventFeedResponse {
events: Array<ReconEvent>;
cursor: string;
}
export interface IReconApi extends Observable<ReconEventFeedResponse> {
init(initialCursor?: string, initialInterests?: Array<StreamID>): Promise<void>;
registerInterest(model: StreamID, controller?: string): Promise<void>;
put(car: CAR, opts?: AbortOptions): Promise<void>;
enabled: boolean;
stop(): void;
}
export declare class ReconApi extends Observable<ReconEventFeedResponse> implements IReconApi {
#private;
constructor(config: ReconApiConfig, logger: DiagnosticsLogger, sendRequest?: FetchRequest, pollInterval?: number);
init(initialCursor?: string, initialInterests?: Array<StreamID>): Promise<void>;
private verifyNetwork;
registerInterest(model: StreamID, controller?: string): Promise<void>;
put(car: CAR, opts?: AbortOptions): Promise<void>;
get enabled(): boolean;
stop(): void;
private createSubscription;
}
//# sourceMappingURL=recon.d.ts.map