import { RegionsService } from './regions.service';
import { CreateRegionDto, UpdateRegionDto, RegionQueryDto } from './dto/region.dto';
export declare class RegionsController {
    private readonly regionsService;
    constructor(regionsService: RegionsService);
    create(createRegionDto: CreateRegionDto): Promise<{
        currency: string | null;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        isActive: boolean;
        timezone: string | null;
        locale: string | null;
    }>;
    findAll(query: RegionQueryDto): Promise<{
        organizationCount: number;
        defaultOrganization: any;
        organizationRegions: ({
            organization: {
                code: string;
                id: string;
                name: string;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            regionId: string;
            isDefault: boolean;
        })[];
        currency: string | null;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        isActive: boolean;
        timezone: string | null;
        locale: string | null;
    }[]>;
    findActive(): Promise<{
        currency: string | null;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        isActive: boolean;
        timezone: string | null;
        locale: string | null;
    }[]>;
    findOne(id: string): Promise<{
        organizations: any;
        organizationRegions: ({
            organization: {
                code: string;
                id: string;
                name: string;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            regionId: string;
            isDefault: boolean;
        })[];
        primaryOrganizations: {
            code: string;
            id: string;
            name: string;
        }[];
        currency: string | null;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        isActive: boolean;
        timezone: string | null;
        locale: string | null;
    }>;
    findByCode(code: string): Promise<{
        currency: string | null;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        isActive: boolean;
        timezone: string | null;
        locale: string | null;
    }>;
    getStats(id: string): Promise<{
        organizationCount: number;
        departmentCount: number;
        userCount: number;
    }>;
    update(id: string, updateRegionDto: UpdateRegionDto): Promise<{
        currency: string | null;
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        isActive: boolean;
        timezone: string | null;
        locale: string | null;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    setDefaultOrganization(id: string, body: {
        departmentId: string | null;
    }): Promise<{
        message: string;
        regionId: string;
        organizationId: string;
    } | {
        message: string;
        regionId: string;
        organizationId: null;
    }>;
}
