import { DistrictRepository } from "../repositories/DistrictRepository.js";
export interface DistrictImportRowResult {
    row: number;
    name: string;
    status: "imported" | "skipped";
    reason?: string;
}
export declare class DistrictService {
    private readonly districtRepository;
    constructor(districtRepository?: DistrictRepository);
    createDistrict(data: {
        name: string;
        tamilName?: string;
        status?: boolean;
        stateId: bigint;
        createdBy?: bigint;
    }): Promise<{
        name: string;
        id: bigint;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
    }>;
    getDistricts(page?: number, limit?: number, search?: string, status?: boolean, stateId?: bigint): Promise<{
        data: ({
            state: {
                name: string;
                id: bigint;
                status: boolean;
                createdAt: Date;
                updatedAt: Date;
                tamilName: string | null;
                createdBy: bigint | null;
            };
        } & {
            name: string;
            id: bigint;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            tamilName: string | null;
            createdBy: bigint | null;
            stateId: bigint;
        })[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getDistrictById(id: bigint): Promise<{
        state: {
            name: string;
            id: bigint;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            tamilName: string | null;
            createdBy: bigint | null;
        };
    } & {
        name: string;
        id: bigint;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
    }>;
    updateDistrict(id: bigint, data: {
        name?: string;
        tamilName?: string;
        status?: boolean;
        stateId?: bigint;
    }): Promise<{
        name: string;
        id: bigint;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
    }>;
    deleteDistrict(id: bigint): Promise<{
        name: string;
        id: bigint;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
    }>;
    generateImportTemplate(): Promise<Buffer>;
    importBulk(fileBuffer: Buffer, createdBy?: bigint): Promise<{
        message: string;
        importedCount: number;
        skippedCount: number;
        results: DistrictImportRowResult[];
    }>;
}
//# sourceMappingURL=DistrictService.d.ts.map