import { Schema } from '../schema/Schema.js'; import * as t from 'io-ts'; import { AxiosResponse } from 'axios'; import * as Location from './Location.js'; import type { Context, Resource, ResourceCreator, ResourceSpec } from './Resource.js'; import { StorablePromise } from './StorablePromise.js'; export declare type CollSchema = Schema; export declare type CollResourceSpec = ResourceSpec & { getKey: (value: t.TypeOf) => unknown; entry: ResourceCreator; }; export declare type CollResourceT = Resource & { (index: Location.Index): Resource; entrySchema: Schema; }; export declare const CollectionResource: >>(schema: S, collSpec?: Spec) => ((context: Context) => Resource & import("ts-toolbelt/out/Object/Merge").MergeDeep<{ [key in keyof (Spec["methods"] & {})]: (Spec["methods"] & {})[key] extends (...args: infer A) => infer R ? (...args: A) => R : never; }, { head: (this: CollResourceT, params?: {}) => Promise; list(this: CollResourceT, params?: {}): StorablePromise>; get(this: CollResourceT, params?: {}): StorablePromise>; post: (this: CollResourceT, instance: unknown, params?: {}) => Promise; create(this: CollResourceT, instance: unknown, params?: {}): StorablePromise>; }, import("ts-toolbelt/out/Misc/BuiltIn").BuiltIn, undefined> & { [key_1 in keyof (Spec["resources"] & {})]: (Spec["resources"] & {})[key_1] extends (context: Context) => infer R_1 ? R_1 : never; } & (Spec["entry"] extends Function ? Spec["entry"] extends (context: Context) => infer R_2 ? (index: Location.Index) => R_2 : never : {})) & { schema: S; }; export default CollectionResource; //# sourceMappingURL=CollectionResource.d.ts.map