import { WarehouseService } from '../services/warehouse.service';
import { CreateWarehouseDto, UpdateWarehouseDto, QueryWarehouseDto } from '../dto/warehouse.dto';
export declare class WarehouseController {
    private readonly warehouseService;
    constructor(warehouseService: WarehouseService);
    create(dto: CreateWarehouseDto): Promise<{
        _count: {
            parts: number;
            storageLocations: number;
        };
    } & {
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.WarehouseStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        address: string | null;
        isDefault: boolean;
        nameCn: string | null;
        contactPerson: string | null;
        contactPhone: string | null;
    }>;
    findAll(query: QueryWarehouseDto): Promise<{
        items: ({
            _count: {
                parts: number;
                storageLocations: number;
            };
        } & {
            code: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.WarehouseStatus;
            sortOrder: number;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            nameEn: string;
            address: string | null;
            isDefault: boolean;
            nameCn: string | null;
            contactPerson: string | null;
            contactPhone: string | null;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    findAllForSelect(): Promise<{
        code: string;
        id: string;
        nameEn: string;
        isDefault: boolean;
        nameCn: string | null;
    }[]>;
    findOne(id: string): Promise<{
        _count: {
            parts: number;
            storageLocations: number;
        };
        storageLocations: {
            position: string | null;
            code: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.StorageLocationStatus;
            sortOrder: number;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            nameEn: string;
            level: string | null;
            warehouseId: string;
            nameCn: string | null;
            zone: string | null;
            aisle: string | null;
            rack: string | null;
            capacity: number | null;
        }[];
    } & {
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.WarehouseStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        address: string | null;
        isDefault: boolean;
        nameCn: string | null;
        contactPerson: string | null;
        contactPhone: string | null;
    }>;
    update(id: string, dto: UpdateWarehouseDto): Promise<{
        _count: {
            parts: number;
            storageLocations: number;
        };
    } & {
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.WarehouseStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        address: string | null;
        isDefault: boolean;
        nameCn: string | null;
        contactPerson: string | null;
        contactPhone: string | null;
    }>;
    remove(id: string): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.WarehouseStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        address: string | null;
        isDefault: boolean;
        nameCn: string | null;
        contactPerson: string | null;
        contactPhone: string | null;
    }>;
}
