import type { EndpointInterface, EndpointToFunction } from '@data-client/endpoint'; import { OptionsToFunction } from './OptionsToFunction.js'; import type { ResourcePath } from './pathTypes.js'; import { Extendable } from './resourceExtendable.js'; import { ResourceGenerics, ResourceInterface } from './resourceTypes.js'; import type { PartialRestGenerics, RestExtendedEndpoint, RestInstanceBase, RestEndpointOptions } from './RestEndpoint.js'; export type ResourceExtension, 'extend'>, O extends PartialRestGenerics | {}> = { [K in keyof R]: K extends ExtendKey ? RestExtendedEndpoint : R[K]; }; /** Resource with individual endpoints customized * */ export interface CustomResource extends Extendable { get: unknown extends Get ? R['get'] : PartialRestGenerics extends Get ? R['get'] : RestExtendedEndpoint; getList: unknown extends GetList ? R['getList'] : PartialRestGenerics extends GetList ? R['getList'] : RestExtendedEndpoint; update: unknown extends Update ? R['update'] : PartialRestGenerics extends Update ? R['update'] : RestExtendedEndpoint; partialUpdate: unknown extends PartialUpdate ? R['partialUpdate'] : PartialRestGenerics extends PartialUpdate ? R['partialUpdate'] : RestExtendedEndpoint; delete: unknown extends Delete ? R['delete'] : PartialRestGenerics extends Delete ? R['delete'] : RestExtendedEndpoint; } export type ExtendedResource> = Omit & T; export interface ResourceEndpointExtensions { readonly get?: RestEndpointOptions : OptionsToFunction>, R['get']['schema']> & Readonly; readonly getList?: RestEndpointOptions : OptionsToFunction>, R['getList']['schema']> & Readonly; readonly update?: RestEndpointOptions : OptionsToFunction>, R['update']['schema']> & Readonly; readonly partialUpdate?: RestEndpointOptions : OptionsToFunction>, R['partialUpdate']['schema']> & Readonly; readonly delete?: RestEndpointOptions : OptionsToFunction>, R['delete']['schema']> & Readonly; } //# sourceMappingURL=resourceExtensionTypes.d.ts.map