import type { AdapterRequestContext } from './AdapterRequestContext'; import type { FetchResponse } from './network'; import type { Luvio } from './Root'; import type { Snapshot } from './interfaces/Snapshot'; export type AdapterFactory = (luvio: Luvio) => Adapter; export type Adapter = (config: Config, requestContext?: AdapterRequestContext) => Promise> | Snapshot | null; export type DeleteAdapterFactory = (luvio: Luvio) => DeleteAdapter; export type DeleteAdapter = (config: Config) => Promise>; export declare enum ResourceParamType { UrlParameter = 0, QueryParameter = 1, Body = 2, Header = 3 } export declare enum TypeCheckShapes { String = 0, Boolean = 1, Number = 2, Integer = 3, Unsupported = 4 } export type AdapterConfigMetadata = { name: string; required: boolean; resourceType: ResourceParamType; typeCheckShape: TypeCheckShapes; isArrayShape: boolean; coerceFn?: (v: unknown) => unknown; };