import type { CurrentUserPayload } from "../../common/decorators/current-user.decorator";
import { RobotSystemConfigService } from './services/robot-system-config.service';
import { RobotModelService } from './services/robot-model.service';
import { RobotSkuService } from './services/robot-sku.service';
declare class UpsertConfigDto {
    value: unknown;
    description?: string;
}
declare class CreateModelDto {
    code: string;
    name: string;
    brand?: string;
    description?: string;
    imageUrl?: string;
    enabled?: boolean;
    metadata?: Record<string, unknown>;
}
declare class UpdateModelDto {
    name?: string;
    brand?: string;
    description?: string;
    imageUrl?: string;
    enabled?: boolean;
    metadata?: Record<string, unknown>;
}
declare class CreateSkuDto {
    modelId: string;
    code: string;
    name: string;
    variant?: string;
    defaultPrice?: number;
    defaultCost?: number;
    currencyCode?: string;
    description?: string;
    enabled?: boolean;
}
declare class UpdateSkuDto {
    name?: string;
    variant?: string;
    defaultPrice?: number;
    defaultCost?: number;
    currencyCode?: string;
    description?: string;
    enabled?: boolean;
}
export declare class RobotAdminController {
    private readonly configService;
    private readonly modelService;
    private readonly skuService;
    constructor(configService: RobotSystemConfigService, modelService: RobotModelService, skuService: RobotSkuService);
    listConfig(): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        description: string | null;
        key: string;
        value: import("@prisma/client/runtime/library").JsonValue;
        organizationId: string | null;
        createdById: string | null;
    }[]>;
    getConfig(key: string): Promise<{
        key: string;
        value: any;
    }>;
    setConfig(key: string, body: UpsertConfigDto): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        description: string | null;
        key: string;
        value: import("@prisma/client/runtime/library").JsonValue;
        organizationId: string | null;
        createdById: string | null;
    }>;
    deleteConfig(key: string): Promise<{
        success: boolean;
    }>;
    listModels(search?: string, enabledOnly?: string): Promise<({
        _count: {
            robotUnits: number;
            skus: number;
        };
    } & {
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        imageUrl: string | null;
        brand: string | null;
    })[]>;
    getModel(id: string): Promise<{
        skus: {
            code: string;
            id: string;
            createdAt: Date;
            name: string;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string;
            createdById: string;
            enabled: boolean;
            currencyCode: string | null;
            modelId: string;
            variant: string | null;
            defaultPrice: import("@prisma/client/runtime/library").Decimal | null;
            defaultCost: import("@prisma/client/runtime/library").Decimal | null;
        }[];
    } & {
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        imageUrl: string | null;
        brand: string | null;
    }>;
    createModel(dto: CreateModelDto, user: CurrentUserPayload): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        imageUrl: string | null;
        brand: string | null;
    }>;
    updateModel(id: string, dto: UpdateModelDto): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        imageUrl: string | null;
        brand: string | null;
    }>;
    deleteModel(id: string): Promise<{
        success: boolean;
    }>;
    listSkus(modelId?: string, search?: string, enabledOnly?: string): Promise<({
        _count: {
            robotUnits: number;
        };
        model: {
            code: string;
            id: string;
            createdAt: Date;
            name: string;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string;
            createdById: string;
            enabled: boolean;
            imageUrl: string | null;
            brand: string | null;
        };
    } & {
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        currencyCode: string | null;
        modelId: string;
        variant: string | null;
        defaultPrice: import("@prisma/client/runtime/library").Decimal | null;
        defaultCost: import("@prisma/client/runtime/library").Decimal | null;
    })[]>;
    getSku(id: string): Promise<{
        model: {
            code: string;
            id: string;
            createdAt: Date;
            name: string;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string;
            createdById: string;
            enabled: boolean;
            imageUrl: string | null;
            brand: string | null;
        };
    } & {
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        currencyCode: string | null;
        modelId: string;
        variant: string | null;
        defaultPrice: import("@prisma/client/runtime/library").Decimal | null;
        defaultCost: import("@prisma/client/runtime/library").Decimal | null;
    }>;
    createSku(dto: CreateSkuDto, user: CurrentUserPayload): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        currencyCode: string | null;
        modelId: string;
        variant: string | null;
        defaultPrice: import("@prisma/client/runtime/library").Decimal | null;
        defaultCost: import("@prisma/client/runtime/library").Decimal | null;
    }>;
    updateSku(id: string, dto: UpdateSkuDto): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        organizationId: string;
        createdById: string;
        enabled: boolean;
        currencyCode: string | null;
        modelId: string;
        variant: string | null;
        defaultPrice: import("@prisma/client/runtime/library").Decimal | null;
        defaultCost: import("@prisma/client/runtime/library").Decimal | null;
    }>;
    deleteSku(id: string): Promise<{
        success: boolean;
    }>;
}
export {};
