import type Medusa from "@medusajs/js-sdk";
import type { FindParams, HttpTypes, SelectParams } from "@medusajs/types";
import type { CategoryService } from "./types";
type MedusaCategoryListQuery = FindParams & HttpTypes.StoreProductCategoryListParams & Record<string, unknown>;
type MedusaCategoryDetailQuery = SelectParams & Record<string, unknown>;
export type MedusaCategoryListInput = FindParams & HttpTypes.StoreProductCategoryListParams & {
    enabled?: boolean;
    locale?: string;
};
export type MedusaCategoryDetailInput = SelectParams & {
    id?: string;
    enabled?: boolean;
    locale?: string;
};
export type MedusaCategoryTransformListContext<TListParams extends MedusaCategoryListInput> = {
    params: TListParams;
    query: MedusaCategoryListQuery;
    response: HttpTypes.StoreProductCategoryListResponse;
};
export type MedusaCategoryTransformDetailContext<TDetailParams extends MedusaCategoryDetailInput> = {
    params: TDetailParams;
    query: MedusaCategoryDetailQuery;
    response: HttpTypes.StoreProductCategoryResponse;
};
export type MedusaCategoryServiceConfig<TCategory, TListParams extends MedusaCategoryListInput, TDetailParams extends MedusaCategoryDetailInput> = {
    listPath?: string;
    defaultListFields?: string;
    defaultDetailFields?: string;
    normalizeListQuery?: (params: TListParams) => MedusaCategoryListQuery;
    normalizeDetailQuery?: (params: TDetailParams) => MedusaCategoryDetailQuery;
    transformCategory?: (category: HttpTypes.StoreProductCategory) => TCategory;
    transformListCategory?: (category: HttpTypes.StoreProductCategory, context: MedusaCategoryTransformListContext<TListParams>) => TCategory;
    transformDetailCategory?: (category: HttpTypes.StoreProductCategory, context: MedusaCategoryTransformDetailContext<TDetailParams>) => TCategory;
};
/**
 * Creates a CategoryService for Medusa Store API.
 *
 * Uses `/store/product-categories` through `sdk.client.fetch` so query cancellation
 * works with `AbortSignal` passed by TanStack Query.
 */
export declare function createMedusaCategoryService<TCategory = HttpTypes.StoreProductCategory, TListParams extends MedusaCategoryListInput = MedusaCategoryListInput, TDetailParams extends MedusaCategoryDetailInput = MedusaCategoryDetailInput>(sdk: Medusa, config?: MedusaCategoryServiceConfig<TCategory, TListParams, TDetailParams>): CategoryService<TCategory, TListParams, TDetailParams>;
export {};
//# sourceMappingURL=medusa-service.d.ts.map