export declare enum UserStatus {
    ACTIVE = "ACTIVE",
    INACTIVE = "INACTIVE",
    SUSPENDED = "SUSPENDED",
    TERMINATED = "TERMINATED"
}
export declare enum UserSource {
    LOCAL = "LOCAL",
    LDAP = "LDAP",
    ENTRA = "ENTRA"
}
export declare class ImportUserMembershipDto {
    email: string;
    departmentCode: string;
    organizationId: string;
    positionId?: string;
    managerEmail?: string;
    title?: string;
    isPrimary?: boolean | string;
}
export declare class ImportUserMembershipsDto {
    users: ImportUserMembershipDto[];
}
export declare class CreateUserDto {
    username: string;
    email: string;
    password?: string;
    displayName: string;
    source?: UserSource;
    phone?: string;
    avatar?: string;
    employeeId?: string;
    departmentId?: string;
    positionId?: string;
    managerId?: string;
    title?: string;
    region?: string;
    hiredAt?: string;
}
export declare class UpdateUserDto {
    displayName?: string;
    email?: string;
    phone?: string;
    avatar?: string;
    employeeId?: string;
    departmentId?: string | null;
    positionId?: string | null;
    managerId?: string | null;
    region?: string;
    workCity?: string | null;
    status?: UserStatus;
}
export declare class RoleAssignmentDto {
    roleId: string;
    organizationId?: string | null;
}
export declare class AssignRolesDto {
    roleIds?: string[];
    assignments?: RoleAssignmentDto[];
}
export declare class RegionRoleItemDto {
    roleId: string;
    region?: string;
}
export declare class AssignRegionRolesDto {
    roles: RegionRoleItemDto[];
}
export declare class AddRegionRoleDto {
    roleId: string;
    region?: string;
}
export declare class RemoveRegionRoleDto {
    roleId: string;
    region?: string;
}
export declare class TerminateUserDto {
    reason?: string;
    terminatedAt?: string;
}
export declare class ActivateUserDto {
    reason?: string;
}
export declare class UpdateUserStatusDto {
    status: UserStatus;
    reason?: string;
}
export declare class RestoreUserDto {
    reason?: string;
}
export declare class ResetPasswordDto {
    newPassword: string;
}
export declare class UserQueryDto {
    page?: number;
    pageSize?: number;
    keyword?: string;
    status?: UserStatus;
    departmentId?: string;
    region?: string;
    sortBy?: string;
    sortOrder?: 'asc' | 'desc';
    includeDeleted?: boolean;
    externalId?: string;
}
