import { StationService } from '../services/station.service';
import { CreateStationDto, UpdateStationDto, QueryStationDto, BulkImportStationsDto } from '../dto/station.dto';
export declare class StationController {
    private readonly stationService;
    constructor(stationService: StationService);
    create(dto: CreateStationDto): Promise<{
        type: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.StationStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        nameCn: string | null;
        area: string | null;
        line: string | null;
    }>;
    findAll(query: QueryStationDto): Promise<{
        items: ({
            _count: {
                parts: number;
            };
        } & {
            type: string | null;
            code: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.StationStatus;
            sortOrder: number;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            nameEn: string;
            nameCn: string | null;
            area: string | null;
            line: string | null;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getSelectOptions(): Promise<{
        code: string;
        id: string;
        nameEn: string;
        nameCn: string | null;
        area: string | null;
        line: string | null;
    }[]>;
    getAreas(): Promise<(string | null)[]>;
    getLines(area?: string): Promise<(string | null)[]>;
    getTypes(): Promise<(string | null)[]>;
    getImportTemplate(): Promise<{
        code: string;
        nameEn: string;
        nameCn: string;
        area: string;
        line: string;
        type: string;
        description: string;
    }[]>;
    bulkImport(dto: BulkImportStationsDto): Promise<{
        success: number;
        failed: number;
        errors: {
            row: number;
            code: string;
            error: string;
        }[];
        created: any[];
    }>;
    findOne(id: string): Promise<{
        _count: {
            parts: number;
        };
    } & {
        type: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.StationStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        nameCn: string | null;
        area: string | null;
        line: string | null;
    }>;
    update(id: string, dto: UpdateStationDto): Promise<{
        type: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.StationStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        nameCn: string | null;
        area: string | null;
        line: string | null;
    }>;
    remove(id: string): Promise<{
        type: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.StationStatus;
        sortOrder: number;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        description: string | null;
        nameEn: string;
        nameCn: string | null;
        area: string | null;
        line: string | null;
    }>;
}
