@lodestar/api
Version:
A Typescript REST client for the Ethereum Consensus API
27 lines • 1.73 kB
TypeScript
import { Type } from "@chainsafe/ssz";
import { ForkName } from "@lodestar/params";
import { Endpoint, RequestWithBodyCodec, RequestWithoutBodyCodec, ResponseCodec, ResponseDataCodec, ResponseMetadataCodec, SszRequestMethods } from "./types.js";
export type EmptyArgs = void;
export type EmptyRequest = Record<never, never>;
export type EmptyResponseData = void;
export type EmptyMeta = void;
export type AnyEndpoint = Endpoint<any, any, any, any, any>;
export type EmptyRequestEndpoint = Endpoint<any, EmptyArgs, EmptyRequest, any, any>;
export type EmptyResponseEndpoint = Endpoint<any, any, any, EmptyResponseData, EmptyMeta>;
/** Shortcut for routes that have no params, query */
export declare const EmptyRequestCodec: RequestWithoutBodyCodec<EmptyRequestEndpoint>;
export declare function JsonOnlyReq<E extends Endpoint>(req: Omit<RequestWithBodyCodec<E>, keyof SszRequestMethods<E>>): RequestWithBodyCodec<E>;
export declare const EmptyResponseDataCodec: ResponseDataCodec<EmptyResponseData, EmptyMeta>;
export declare const EmptyMetaCodec: ResponseMetadataCodec<EmptyMeta>;
export declare const EmptyResponseCodec: ResponseCodec<EmptyResponseEndpoint>;
export declare function WithMeta<T, M extends {
version: ForkName;
}>(getType: (m: M) => Type<T>): ResponseDataCodec<T, M>;
export declare function WithVersion<T, M extends {
version: ForkName;
}>(getType: (v: ForkName) => Type<T>): ResponseDataCodec<T, M>;
export declare function JsonOnlyResp<E extends Endpoint>(resp: Omit<ResponseCodec<E>, "data"> & {
data: Omit<ResponseCodec<E>["data"], "serialize" | "deserialize">;
}): ResponseCodec<E>;
export declare const JsonOnlyResponseCodec: ResponseCodec<AnyEndpoint>;
//# sourceMappingURL=codecs.d.ts.map