import type { CacheConfig, CacheStrategy } from "../shared/cache-config";
import type { QueryFactoryOptions, ReadQueryOptions } from "../shared/hook-types";
import type { QueryNamespace } from "../shared/query-keys";
import type { ProductReviewListInputBase, ProductReviewListResponse, ProductReviewQueryKeys, ProductReviewService } from "./types";
type ProductReviewListService<TReview, TListParams> = Pick<ProductReviewService<TReview, TListParams>, "listProductReviews">;
export type CreateProductReviewQueryOptionsFactoryConfig<TReview, TListInput extends ProductReviewListInputBase, TListParams> = {
    service: ProductReviewListService<TReview, TListParams>;
    buildListParams?: (input: TListInput) => TListParams;
    queryKeys?: ProductReviewQueryKeys<TListParams>;
    queryKeyNamespace?: QueryNamespace;
    cacheConfig?: CacheConfig;
    defaultPageSize?: number;
};
export type ProductReviewQueryOptionsFactory<TReview, TListInput extends ProductReviewListInputBase> = {
    getProductReviewsQueryOptions: (input: TListInput, options?: {
        queryOptions?: ReadQueryOptions<ProductReviewListResponse<TReview>>;
        cacheStrategy?: CacheStrategy;
    }) => QueryFactoryOptions<ProductReviewListResponse<TReview>>;
};
export declare function createProductReviewQueryOptionsFactory<TReview, TListInput extends ProductReviewListInputBase, TListParams>({ service, buildListParams, queryKeys, queryKeyNamespace, cacheConfig, defaultPageSize, }: CreateProductReviewQueryOptionsFactoryConfig<TReview, TListInput, TListParams>): ProductReviewQueryOptionsFactory<TReview, TListInput>;
export {};
//# sourceMappingURL=query-options.d.ts.map