import { StorageLocationService } from '../services/storage-location.service';
import { CreateStorageLocationDto, UpdateStorageLocationDto, QueryStorageLocationDto, BulkImportLocationsDto } from '../dto/storage-location.dto';
export declare class StorageLocationController {
    private readonly storageLocationService;
    constructor(storageLocationService: StorageLocationService);
    create(dto: CreateStorageLocationDto): Promise<{
        warehouse: {
            code: string;
            id: string;
            nameEn: string;
            nameCn: string | null;
        };
        _count: {
            parts: number;
        };
    } & {
        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;
    }>;
    findAll(query: QueryStorageLocationDto): Promise<{
        items: ({
            warehouse: {
                code: string;
                id: string;
                nameEn: string;
                nameCn: string | null;
            };
            _count: {
                parts: number;
            };
        } & {
            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;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    findByWarehouse(warehouseId: string): Promise<{
        code: string;
        id: string;
        nameEn: string;
        nameCn: string | null;
        zone: string | null;
    }[]>;
    getZones(warehouseId?: string): Promise<(string | null)[]>;
    getImportTemplate(): Promise<{
        code: string;
        nameEn: string;
        nameCn: string;
        zone: string;
        aisle: string;
        rack: string;
        level: string;
        position: string;
        capacity: number;
        description: string;
    }[]>;
    bulkImport(warehouseId: string, dto: BulkImportLocationsDto): Promise<{
        success: number;
        failed: number;
        errors: {
            row: number;
            code: string;
            error: string;
        }[];
        created: any[];
    }>;
    findOne(id: string): Promise<{
        warehouse: {
            code: string;
            id: string;
            nameEn: string;
            nameCn: string | null;
        };
        _count: {
            parts: number;
        };
    } & {
        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;
    }>;
    update(id: string, dto: UpdateStorageLocationDto): Promise<{
        warehouse: {
            code: string;
            id: string;
            nameEn: string;
            nameCn: string | null;
        };
        _count: {
            parts: number;
        };
    } & {
        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;
    }>;
    remove(id: string): Promise<{
        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;
    }>;
}
