import { TransactionBaseService } from "@medusajs/medusa"; import { Attribute } from "../models/attribute"; import { AttributeRepository } from "../repositories/attribute"; import { EntityManager, FindManyOptions, FindOneOptions } from "typeorm"; import { AdminPostAttributeReq } from "../api/attribute/create-attribute"; import ProductCategoryRepository from "../repositories/product-category"; import { AdminListAttributesParams } from "../api/attribute/list-attributes"; type InjectedDependencies = { manager: EntityManager; attributeRepository: typeof AttributeRepository; productCategoryRepository: typeof ProductCategoryRepository; }; export declare const defaultAttributeRelations: string[]; declare class AttributeService extends TransactionBaseService { protected readonly attributeRepository_: typeof AttributeRepository; protected readonly productCategoryRepository_: typeof ProductCategoryRepository; constructor({ attributeRepository, productCategoryRepository, }: InjectedDependencies); create(data: AdminPostAttributeReq): Promise; list({ categories }: AdminListAttributesParams, defaultConfig?: Pick, "select" | "where" | "relations">): Promise; retrieve(id: string, config?: Omit, "where">): Promise; update(id: string, data: Partial): Promise<{ id: string; name: string; description: string; type: import("../models/attribute").AttributeType; values: import("../models/attribute-value").AttributeValue[]; handle: string; filterable: boolean; metadata: Record; categories: import("../models/product-category").ProductCategory[]; int_values: import("../models/int-attribute-value").IntAttributeValue[]; created_at: Date; updated_at: Date; } & Attribute>; delete(id: string): Promise; } export default AttributeService;