import { OrganizationsService } from './organizations.service';
import { CreateOrganizationDto, UpdateOrganizationDto, OrganizationQueryDto, OrganizationRegionDto } from './dto';
export declare class OrganizationsController {
    private readonly organizationsService;
    constructor(organizationsService: OrganizationsService);
    create(createDto: CreateOrganizationDto): Promise<({
        primaryRegion: {
            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;
        } | null;
        departments: {
            code: string;
            id: string;
            createdAt: Date;
            tenantId: string | null;
            name: string;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string;
            parentId: string | null;
            headId: string | null;
            order: number;
        }[];
        organizationRegions: ({
            region: {
                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;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            regionId: string;
            isDefault: boolean;
        })[];
    } & {
        displayName: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: string;
        name: string;
        email: string | null;
        phone: string | null;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        legalName: string | null;
        legalRepresentative: string | null;
        registrationNumber: string | null;
        taxId: string | null;
        address: string | null;
        website: string | null;
        primaryRegionId: string | null;
        settings: import("@prisma/client/runtime/library").JsonValue;
        financialConfig: import("@prisma/client/runtime/library").JsonValue;
        complianceConfig: import("@prisma/client/runtime/library").JsonValue;
        isActive: boolean;
        establishedAt: Date | null;
    }) | null>;
    findAll(query: OrganizationQueryDto, req: any): Promise<{
        items: ({
            _count: {
                departments: number;
                userDepartments: number;
            };
            primaryRegion: {
                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;
            } | null;
            organizationRegions: ({
                region: {
                    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;
                };
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                regionId: string;
                isDefault: boolean;
            })[];
        } & {
            displayName: string | null;
            code: string;
            id: string;
            createdAt: Date;
            status: string;
            name: string;
            email: string | null;
            phone: string | null;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            updatedAt: Date;
            deletedAt: Date | null;
            order: number;
            nameEn: string | null;
            nameZh: string | null;
            legalName: string | null;
            legalRepresentative: string | null;
            registrationNumber: string | null;
            taxId: string | null;
            address: string | null;
            website: string | null;
            primaryRegionId: string | null;
            settings: import("@prisma/client/runtime/library").JsonValue;
            financialConfig: import("@prisma/client/runtime/library").JsonValue;
            complianceConfig: import("@prisma/client/runtime/library").JsonValue;
            isActive: boolean;
            establishedAt: Date | null;
        })[];
        total: number;
        page: number;
        pageSize: number;
        totalPages: number;
    }>;
    findOne(id: string): Promise<{
        _count: {
            departments: number;
            userDepartments: number;
        };
        primaryRegion: {
            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;
        } | null;
        organizationRegions: ({
            region: {
                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;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            regionId: string;
            isDefault: boolean;
        })[];
    } & {
        displayName: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: string;
        name: string;
        email: string | null;
        phone: string | null;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        legalName: string | null;
        legalRepresentative: string | null;
        registrationNumber: string | null;
        taxId: string | null;
        address: string | null;
        website: string | null;
        primaryRegionId: string | null;
        settings: import("@prisma/client/runtime/library").JsonValue;
        financialConfig: import("@prisma/client/runtime/library").JsonValue;
        complianceConfig: import("@prisma/client/runtime/library").JsonValue;
        isActive: boolean;
        establishedAt: Date | null;
    }>;
    update(id: string, updateDto: UpdateOrganizationDto): Promise<{
        primaryRegion: {
            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;
        } | null;
        organizationRegions: ({
            region: {
                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;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            regionId: string;
            isDefault: boolean;
        })[];
    } & {
        displayName: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: string;
        name: string;
        email: string | null;
        phone: string | null;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        legalName: string | null;
        legalRepresentative: string | null;
        registrationNumber: string | null;
        taxId: string | null;
        address: string | null;
        website: string | null;
        primaryRegionId: string | null;
        settings: import("@prisma/client/runtime/library").JsonValue;
        financialConfig: import("@prisma/client/runtime/library").JsonValue;
        complianceConfig: import("@prisma/client/runtime/library").JsonValue;
        isActive: boolean;
        establishedAt: Date | null;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    manageRegions(id: string, dto: OrganizationRegionDto): Promise<{
        _count: {
            departments: number;
            userDepartments: number;
        };
        primaryRegion: {
            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;
        } | null;
        organizationRegions: ({
            region: {
                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;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            regionId: string;
            isDefault: boolean;
        })[];
    } & {
        displayName: string | null;
        code: string;
        id: string;
        createdAt: Date;
        status: string;
        name: string;
        email: string | null;
        phone: string | null;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        updatedAt: Date;
        deletedAt: Date | null;
        order: number;
        nameEn: string | null;
        nameZh: string | null;
        legalName: string | null;
        legalRepresentative: string | null;
        registrationNumber: string | null;
        taxId: string | null;
        address: string | null;
        website: string | null;
        primaryRegionId: string | null;
        settings: import("@prisma/client/runtime/library").JsonValue;
        financialConfig: import("@prisma/client/runtime/library").JsonValue;
        complianceConfig: import("@prisma/client/runtime/library").JsonValue;
        isActive: boolean;
        establishedAt: Date | null;
    }>;
    removeRegion(id: string, regionId: string): Promise<{
        message: string;
    }>;
    getStats(id: string): Promise<import("./dto").OrganizationStatsDto>;
    getUserOrganizations(userId: string): Promise<import("./dto").UserOrganizationDto[]>;
}
