import { UserDepartmentsService } from './user-departments.service';
import { AddUserDepartmentDto, UpdateUserDepartmentDto } from './dto';
export declare class UserDepartmentsController {
    private readonly userDepartmentsService;
    constructor(userDepartmentsService: UserDepartmentsService);
    getUserDepartments(userId: string): Promise<({
        department: {
            code: string;
            id: string;
            name: string;
        };
        position: {
            id: string;
            name: string;
            level: number;
        } | null;
        manager: {
            displayName: string;
            id: string;
            email: string;
        } | null;
    } & {
        title: string | null;
        id: string;
        createdAt: Date;
        userId: string;
        updatedAt: Date;
        organizationId: string;
        departmentId: string;
        positionId: string | null;
        managerId: string | null;
        isPrimary: boolean;
        joinedAt: Date;
        leftAt: Date | null;
    })[]>;
    addUserDepartment(userId: string, dto: AddUserDepartmentDto): Promise<{
        department: {
            code: string;
            id: string;
            name: string;
        };
        position: {
            id: string;
            name: string;
            level: number;
        } | null;
        manager: {
            displayName: string;
            id: string;
            email: string;
        } | null;
    } & {
        title: string | null;
        id: string;
        createdAt: Date;
        userId: string;
        updatedAt: Date;
        organizationId: string;
        departmentId: string;
        positionId: string | null;
        managerId: string | null;
        isPrimary: boolean;
        joinedAt: Date;
        leftAt: Date | null;
    }>;
    updateUserDepartment(userId: string, departmentId: string, dto: UpdateUserDepartmentDto): Promise<{
        department: {
            code: string;
            id: string;
            name: string;
        };
        position: {
            id: string;
            name: string;
            level: number;
        } | null;
        manager: {
            displayName: string;
            id: string;
            email: string;
        } | null;
    } & {
        title: string | null;
        id: string;
        createdAt: Date;
        userId: string;
        updatedAt: Date;
        organizationId: string;
        departmentId: string;
        positionId: string | null;
        managerId: string | null;
        isPrimary: boolean;
        joinedAt: Date;
        leftAt: Date | null;
    }>;
    setPrimaryDepartment(userId: string, departmentId: string): Promise<{
        userId: string;
        departmentId: string;
        message: string;
    }>;
    removeUserDepartment(userId: string, departmentId: string): Promise<{
        message: string;
        warning: string | undefined;
    }>;
}
