import { PrismaService } from '../../../prisma/prisma.service';
import { SyncQueueService } from './sync-queue.service';
export declare class ProductsService {
    private readonly prisma;
    private readonly syncQueueService;
    constructor(prisma: PrismaService, syncQueueService: SyncQueueService);
    listProducts(businessId: string, search?: string, categoryId?: string): Promise<({
        variants: {
            id: string;
            name: string | null;
            createdAt: Date;
            updatedAt: Date;
            sku: string | null;
            price: number;
            stockQuantity: number | null;
            stockStatus: string;
            productId: string;
            externalVariantId: string;
            attributesJson: string | null;
        }[];
    } & {
        id: string;
        name: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        sku: string | null;
        sourceSystem: string;
        externalProductId: string;
        description: string | null;
        price: number;
        stockQuantity: number | null;
        stockStatus: string;
        imageUrl: string | null;
        lastSyncedAt: Date;
    })[]>;
    getProduct(productId: string): Promise<({
        variants: {
            id: string;
            name: string | null;
            createdAt: Date;
            updatedAt: Date;
            sku: string | null;
            price: number;
            stockQuantity: number | null;
            stockStatus: string;
            productId: string;
            externalVariantId: string;
            attributesJson: string | null;
        }[];
    } & {
        id: string;
        name: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        sku: string | null;
        sourceSystem: string;
        externalProductId: string;
        description: string | null;
        price: number;
        stockQuantity: number | null;
        stockStatus: string;
        imageUrl: string | null;
        lastSyncedAt: Date;
    }) | null>;
    listCategories(businessId: string): Promise<{
        id: string;
        name: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        parentId: string | null;
        sourceSystem: string;
        externalCategoryId: string;
    }[]>;
    createProduct(businessId: string, data: any): Promise<{
        id: string;
        name: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        sku: string | null;
        sourceSystem: string;
        externalProductId: string;
        description: string | null;
        price: number;
        stockQuantity: number | null;
        stockStatus: string;
        imageUrl: string | null;
        lastSyncedAt: Date;
    }>;
    updateProduct(businessId: string, productId: string, data: any): Promise<{
        id: string;
        name: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        sku: string | null;
        sourceSystem: string;
        externalProductId: string;
        description: string | null;
        price: number;
        stockQuantity: number | null;
        stockStatus: string;
        imageUrl: string | null;
        lastSyncedAt: Date;
    }>;
    deleteProduct(businessId: string, productId: string): Promise<{
        id: string;
        name: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        sku: string | null;
        sourceSystem: string;
        externalProductId: string;
        description: string | null;
        price: number;
        stockQuantity: number | null;
        stockStatus: string;
        imageUrl: string | null;
        lastSyncedAt: Date;
    }>;
    createCategory(businessId: string, data: any): Promise<{
        id: string;
        name: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        parentId: string | null;
        sourceSystem: string;
        externalCategoryId: string;
    }>;
    updateCategory(businessId: string, categoryId: string, data: any): Promise<{
        id: string;
        name: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        parentId: string | null;
        sourceSystem: string;
        externalCategoryId: string;
    }>;
    deleteCategory(businessId: string, categoryId: string): Promise<{
        id: string;
        name: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        parentId: string | null;
        sourceSystem: string;
        externalCategoryId: string;
    }>;
}
