import type { CacheConfig } from "../shared/cache-config";
import type { ReadQueryOptions } from "../shared/hook-types";
import type { QueryNamespace } from "../shared/query-keys";
import { type ProductAttributeQueryOptionsFactory } from "./query-options";
import type { ProductAttributeQueryKeys, ProductAttributeService, ProductAttributesInputBase, UseProductAttributesResult } from "./types";
export type CreateProductAttributeHooksConfig<TAttribute, TInput extends ProductAttributesInputBase, TParams> = {
    service: ProductAttributeService<TAttribute, TParams>;
    buildDetailParams?: (input: TInput) => TParams;
    queryKeys?: ProductAttributeQueryKeys<TParams>;
    queryKeyNamespace?: QueryNamespace;
    cacheConfig?: CacheConfig;
};
export type ProductAttributeHooks<TAttribute, TInput extends ProductAttributesInputBase> = {
    getDetailQueryOptions: ProductAttributeQueryOptionsFactory<TAttribute, TInput>["getDetailQueryOptions"];
    useProductAttributes: (input: TInput, options?: {
        queryOptions?: ReadQueryOptions<TAttribute[]>;
    }) => UseProductAttributesResult<TAttribute>;
};
export declare function createProductAttributeHooks<TAttribute, TInput extends ProductAttributesInputBase, TParams>({ service, buildDetailParams, queryKeys, queryKeyNamespace, cacheConfig, }: CreateProductAttributeHooksConfig<TAttribute, TInput, TParams>): ProductAttributeHooks<TAttribute, TInput>;
//# sourceMappingURL=hooks.d.ts.map